我被要求将一个程序从psycopg2迁移到psycopg3。在这个程序中,他们使用
with connection.cursor(cursor_factory=RealDictCursor) as cursor:以获得后来被转换为JSON文件的字典。
我的问题是,RealDictCursor似乎是psycopg2的额外特性,因此在尝试将它用于psycopg3时会出错。在psycopg3中有其他的选择吗?
尝试使用psycopg2库,但没有工作。除了手动遍历返回的数据之外,没有找到任何适合psycopg3的替代方法
发布于 2022-11-22 08:38:56
在psycopg3中生成作为字典的行的方法是将dict_row 排厂传递给连接。
>>> 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'}
]
>>> https://stackoverflow.com/questions/74529506
复制相似问题