Python中文
首页
教程
问答
标签
搜索
登录
注册
DictCursor在psycopg2下似乎不起作用
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我以前从未使用过psycopg2,但我正在尝试将游标工厂更改为DictCursor,以便fetchall或fetchone将返回字典而不是列表。</p> <p>我创建了一个测试脚本,使事情变得简单,只测试这个功能。这是我觉得应该有用的一点代码</p> <pre><code>import psycopg2 import psycopg2.extras conn = psycopg2.connect("dbname=%s user=%s password=%s" % (DATABASE, USERNAME, PASSWORD)) cur = conn.cursor(cursor_factory = psycopg2.extras.DictCursor) cur.execute("SELECT * from review") res = cur.fetchall() print type(res) print res </code></pre> <p>res变量始终是一个列表,而不是我所期望的字典。</p> <p>我目前实现的一个解决方法是使用这个函数来构建字典,并通过它运行fetchall返回的每一行。</p> <pre><code>def build_dict(cursor, row): x = {} for key,col in enumerate(cursor.description): x[col[0]] = row[key] return d </code></pre> <p>Python是2.6.7版,psycopg2是2.4.2版。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>使用RealDictCursor:</p> <pre><code>cur = conn.cursor(cursor_factory = psycopg2.extras.RealDictCursor) cur.execute("SELECT * from review") res = cur.fetchall() </code></pre> <p>这将提供一个包含行的列表作为真正的python字典,而不是“高级psycopg2列表”。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
为什么我的神经网络模型的准确性不能在这个训练集上得到提高?
8 回答
为什么我的神经网络模型的权重变化不大?
7 回答
为什么我的神经网络的成本不断增加?
7 回答
为什么我的神经网络的输入pickle文件是19GB?
9 回答
为什么我的神经网络给属性错误?“非类型”对象没有属性“形状”
10 回答
为什么我的神经网络训练这么慢?
10 回答
为什么我的神经网络输出错误?
7 回答
为什么我的神经网络预测适用于MNIST手绘图像时是正确的,而适用于我自己的手绘图像时是不正确的?
6 回答
为什么我的神经网络验证精度比我的训练精度高,而且它们都是常数?
2 回答
为什么我的私人用户间聊天会显示在其他用户的聊天档案中?
1 回答
为什么我的积分的绝对误差估计值大于积分(使用scipy.integrate.nqad)?
5 回答
为什么我的积层回归器得分比它的组件差?
2 回答
为什么我的移动方法不起作用?
5 回答
为什么我的稀疏张量不能转换成张量
5 回答
为什么我的稀疏张量不能转换成张量?
1 回答
为什么我的程序“停止”了?
10 回答
为什么我的程序一直试图占用所有可用的CPU
7 回答
为什么我的程序不使用指定的代理
4 回答
为什么我的程序不工作(python帮助中的反向函数)?
8 回答
为什么我的程序不工作时,我使用多处理模块
3 回答