2012-02-10 6 views
7
dict_cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) 
dict_cur.execute("SELECT column1, column2, column3 FROM mytable") 
result = dict_cur.fetchall() 
print result[0] 
>>> {'column2':10, 'column1':12, 'column3':42} 

¿Cómo puedo conservar el orden de las columnas sin analizar primero SQL ejecutado? Funciona bien con el cursor normal cuando se devuelve la lista, pero necesito acceder a las claves del diccionario y, por lo tanto, necesito usar RealDictCursor.Cómo conservar el orden de las columnas al utilizar psycopg2.extras.RealDictCursor

EDIT: Bueno, en realidad no puedo. descripción atributo del objeto del cursor se debe utilizar para obtener nombres de columna.

Respuesta

1

no tengo este paquete "extras", pero normalmente un cursor debería tener una propiedad llamada description que es una tupla que contiene todas las columnas de orden junto con alguna información adicional como tipo de campo, etc.

Try out "print dict_cur.description" en un shell python y mira lo que obtienes.

EDITAR: no importa. No leí su "EDITAR" ...

Cuestiones relacionadas