postgresql 从psycopg 3 SELECT查询返回json/字典

qoefvg9y  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(168)

我被要求将一个程序从psycopg2移植到psycopg3。

with connection.cursor(cursor_factory=RealDictCursor) as cursor:

以获取稍后转换为JSON文件的字典。
我的问题是RealDictCursor似乎是psycopg2的一个额外特性,因此在psycopg3中使用它时会出现错误。在psycopg3中是否有其他选择?
尝试使用psycopg2库,但不起作用。除了手动检查返回的数据外,没有找到任何适合psycopg3的替代方法

xbp102n0

xbp102n01#

在psycopg3中生成行作为字典的方法是将dict_row row factory传递给连接。

>>> from psycopg.rows import dict_row
>>>
>>> conn = psycopg.connect(dbname='test', row_factory=dict_row)
>>> cur = conn.cursor()
>>> cur.execute('select id, name from users')
<psycopg.Cursor [TUPLES_OK] [INTRANS] (user=me database=test) at 0x7f0a2bebbdc0>
>>> cur.fetchall()
[
    {'id': 1, 'name': 'Alice'},
    {'id': 2, 'name': 'Bob'},
    {'id': 3, 'name': 'Carol'},
    {'id': 4, 'name': 'Dave'},
    {'id': 5, 'name': 'Eve'}
]
>>>

相关问题