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}
Run Code Online (Sandbox Code Playgroud)
如何在不先解析执行的SQL的情况下保留列排序?返回列表时,它适用于普通光标,但我需要访问字典键,因此需要使用RealDictCursor.
编辑:嗯,我实际上不能.应使用游标对象的description属性来获取列名.
我没有这个“ extras
”包,但通常游标应该有一个名为 的属性description
,它是一个元组,其中按顺序包含所有列以及一些附加信息(如字段类型等)。
在 python shell 中尝试“ print dict_cur.description
”,看看会得到什么。
编辑:没关系。我没有读过你的“编辑”......