- 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/
我试图弄清楚为什么这个查询返回列表列表而不是字典列表。我怀疑它与查询的连接或“as”部分有关。任何对此的见解将不胜感激。 代码如下: try: #Connect to datab
我正在尝试使用 DictCursor与 with block 。我认为通过使用: with MySQLdb.connect(...) as c: c 将是一个连接对象,因为这就是 connect()
我的查询是: query = ''' SELECT * from table where id IN (SELECT ext_id from table2 wh
有什么方法可以在 Django 中获得后端中立的字典游标吗?这将是一个字典而不是元组的游标。我被迫将 Oracle 用于我正在进行的学校项目。 在 Python 的 MySQLDb 模块中,它被称为
AFAIU 和文档中,RealDictCursor 是一个专门的 DictCursor,它允许仅从键(又名列名)访问列,而 DictCursor允许从键或索引号访问数据。 我想知道如果 DictCur
在 Python mysqldb 中,我可以像这样将游标声明为字典游标: cursor = db.cursor(MySQLdb.cursors.DictCursor) 这将使我能够按名称引用 curs
我想使用 python3-psycopg2 (2.5.4) 游标,它可以: 1)以类似字典的方式访问查询结果 2) 使用logging模块自动记录该游标执行的每条sql 我尝试了以下代码,它不起作用,
我正在使用 psycopg2 从 Postgres 数据库访问数据。我正在使用 psycopg2.extras.DictCursor 使用以下查询以类似字典的形式获取数据: try: self
这似乎是一项非常简单的任务,但我很难正确地完成它。 我的 SQL 查询如下所示: self.link = self.db.cursor(pymysql.cursors.DictCursor); sel
我以前没有使用过 psycopg2,但我正在尝试将光标工厂更改为 DictCursor,以便 fetchall 或 fetchone 将返回字典而不是列表。 我创建了一个测试脚本来让事情变得简单,并且
我正在使用 psycopg2 通过以下查询访问 postgres 数据库。为了从执行的查询中返回一个字典,我在我的游标中使用了 DictCursor 但我的输出仍然是一个列表而不是字典。 下面是程序和
我编写了一个 Python Flask 应用程序,最初使用 MySQLdb 访问 MySQL。后来我出于同样的目的切换到 flaskext.mysql,但是现在当我使用这个模块时,我看不到如何获取字典
我有一个 CrawlSpider,我设置了一个项目管道,我试图通过 MySQLdb 坚持下去。我到处搜索,发现的大多数样本至少有 6 个月的历史,所有样本都以相同的方式使用 adbapi。当我尝试使用
我是一名优秀的程序员,十分优秀!