¿Hay alguna forma de obtener los nombres de las columnas de los resultados de pymssql? Si especifico as_dict = True, recupero un diccionario, que contiene todos los encabezados de columna, pero dado que es un diccionario, no están ordenados.obtener los nombres de las columnas del resultado de la consulta utilizando pymssql
6
A
Respuesta
14
pymssql afirma que es compatible con Python DB-API, por lo que debería poder obtener el atributo .description
del objeto del cursor.
.description
This read-only attribute is a sequence of 7-item sequences. Each of these sequences contains information describing one result column: (name, type_code, display_size, internal_size, precision, scale, null_ok)
Por lo tanto, el primer elemento de cada una de las secuencias de "interiores" es el nombre para cada columna.
0
Es una solución básica y necesita optimización, pero el siguiente ejemplo devuelve tanto el encabezado de la columna como el valor de la columna en una lista.
import pymssql
def return_mssql_dict(sql):
try:
con = pymssql.connect(server, user, password, database_name)
cur = con.cursor()
cur.execute(sql)
def return_dict_pair(row_item):
return_dict = {}
for column_name, row in zip(cur.description, row_item):
return_dict[column_name[0]] = row
return return_dict
return_list = []
for row in cur:
row_item = return_dict_pair(row)
return_list.append(row_item)
con.close()
return return_list
except Exception, e:
print '%s' % (e)
2
para obtener los nombres de columna en una línea separada sola coma.
colNames = ""
for i in range(len(cursor.description)):
desc = cursor.description[i]
if i == 0:
colNames = str(desc[0])
else:
colNames += ',' + str(desc[0])
print colNames
Alternativamente, pase los nombres de las columnas a una lista y use .join para obtenerlos como una cadena.
colNameList = []
for i in range(len(cursor.description)):
desc = cursor.description[i]
colNameList.append(desc[0])
colNames = ','.join(colNameList)
print colNames
1
Puede crear una lista de nombres de columnas ordenadas utilizando lista por comprensión en la descripción del cursor atributo:.
column_names = [item[0] for item in cursor.description]
Cuestiones relacionadas
- 1. Obtener nombres de las columnas de una consulta sin datos
- 2. ¿Cómo puedo evitar que Coldfusion convierta los nombres de las columnas de consulta en mayúsculas?
- 3. cómo obtener los nombres de las columnas de la clave principal para una tabla determinada?
- 4. Obtener los nombres de las columnas de la tabla en mysql?
- 5. mysql obtener los nombres de las columnas de la tabla en orden alfabético
- 6. Cómo obtener los nombres de los campos cuando se ejecuta la consulta SQL simple en django
- 7. cómo obtener los nombres de las columnas de una tabla en ms access?
- 8. ¿Cómo obtener nombres de columnas con datos de consulta en sqlite3?
- 9. ¿Cómo tratar los espacios en los nombres de las columnas?
- 10. Obtener nombres de columnas con ActiveRecord
- 11. Usando nombres de columnas sql en hibernate createSQlquery resultado
- 12. ¿Cómo puedo obtener los nombres de las columnas y los datos de las filas en orden con DBI en Perl?
- 13. ¿Cómo obtener los nombres de las columnas junto con los resultados en php/mysql?
- 14. Encuentra Informix de tablas y columnas datos utilizando la consulta SQL
- 15. ¿Cómo devuelves los nombres de las columnas de una tabla?
- 16. Usando GetSchemaTable() para recuperar solo los nombres de las columnas
- 17. data.frame sin arruinar los nombres de las columnas
- 18. Consulta del espacio de nombres Nokogiri/Xpath
- 19. ¿Cómo obtener la extensión de archivo del archivo como resultado de la consulta SQL?
- 20. Cómo consultar los nombres de columna dinámicamente utilizando Postgres/Npgsql
- 21. Obtener todas las columnas de todas las tablas MySQL
- 22. Oracle consulta a buscar nombres de columna
- 23. ¿Cómo puede obtener los nombres de los parámetros del método?
- 24. pymssql y marcadores de posición
- 25. ¿Cómo puedo crear una base de datos utilizando pymssql
- 26. Como restar un resultado de la consulta de otro resultado de la consulta en MySQL
- 27. Hibernate Criterios Consulta para obtener columnas específicas
- 28. SQL Encontrar el tamaño del resultado de la consulta
- 29. ¿Puede pivotar SQL Server sin conocer los nombres de las columnas resultantes?
- 30. Cambiar el nombre de los nombres de las columnas en la base de datos postgresql
realmente la forma de pitón de hacerlo es "" join (cursor.description) –
.description es una lista de tuplas de 7 elementos por lo que ",". join (cursor.description) no lo hará. – Robert