- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
AFAIU 和文档中,RealDictCursor
是一个专门的 DictCursor
,它允许仅从键(又名列名)访问列,而 DictCursor
允许从键或索引号访问数据。
我想知道如果 DictCursor
提供更多灵 active ,为什么要实现 RealDictCursor
?它在性能方面(或内存方面)是否如此不同(我想有利于 RealDictCursor
...)?
换句话说,什么是 RealDictCursor
用例与 DictCursor
?
最佳答案
真正的字典游标的主要优点是可以轻松获得 json 格式的查询输出。
比较:
with psycopg2.connect('dbname=test') as connection:
with connection.cursor(cursor_factory=RealDictCursor) as cursor:
cursor.execute("select * from my_table")
print(json.dumps(cursor.fetchall()))
对比
with psycopg2.connect('dbname=test') as connection:
with connection.cursor() as cursor:
cursor.execute("select * from my_table")
columns = [desc[0] for desc in cursor.description]
real_dict = [dict(zip(columns, row)) for row in cursor.fetchall()]
print(json.dumps(real_dict))
就性能而言,这些选项之间没有重要区别。
对于常规或类似字典的游标,您无法使用 json.dumps(cursor.fetchall())
获得预期的 json,需要进行上述转换。另一方面,真正的字典游标会产生更大的结果,因此如果您确实不需要它,则不应使用它。
关于python - DictCursor 与 RealDictCursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45399347/
AFAIU 和文档中,RealDictCursor 是一个专门的 DictCursor,它允许仅从键(又名列名)访问列,而 DictCursor允许从键或索引号访问数据。 我想知道如果 DictCur
我有一个 postgresql 9.4(又名 mongodb killer ;-))和这个简单的模式: CREATE TABLE test (id SERIAL, name text, misc js
dict_cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) dict_cur.execute("SELECT colum
我是一名优秀的程序员,十分优秀!