有人要求我将一个程序从psycopg2迁移到psycopg3。在这个程序中,他们使用
with connection.cursor(cursor_factory=RealDictCursor) as cursor:
获取字典,然后将其转换为JSON文件。
我的问题是RealDictCursor似乎是psycopg2的额外功能,因此在尝试将其用于psycopg3时出现错误。在psycop3中有其他的使用方法吗?
尝试使用psycopg2库,但不工作。除了手动检查返回的数据
之外,没有找到任何适合psycopg3的替代方法。在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'}
]
>>>