如何在使用psycopg2.extras.RealDictCursor时保留列顺序

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}

我如何保留列顺序而不先解析执行的SQL? 当返回列表时,它与普通游标一起工作良好,但我需要访问字典键,因此需要使用RealDictCursor。

编辑 :嗯,我实际上不能。 游标对象的描述属性应该用于获取列名称。


您可以使用psycopg2.extras.NamedTupleCursor ,然后使用namedtuple_obj._asdict()将其转换为OrderedDict

注意:为了“开箱即用”获得此功能,我们需要Python版本> = 2.7。


我没有这个“ extras ”包,但通常游标应该有一个名为description的属性,它是一个包含所有列的元组以及一些附加信息,如字段类型等。

在python shell中试试“ print dict_cur.description ”,看看你得到了什么。

编辑:没关系。 我没有阅读你的“编辑”...

链接地址: http://www.djcxy.com/p/10451.html

上一篇: How to preserve column order while using psycopg2.extras.RealDictCursor

下一篇: In Xcode4, can you change the characters used to display invisibles?