PostgreSQL返回值设为字典格式

最近在做使用Python操作PostgreSQL的项目,需要把取到的值转换为字典返回过去,由于刚刚接触Python和PostgreSQL,只好去百度寻找相关的方法,百度找到的方法如下,但是不能实现,如有大神,请求指点一二

import psycopg2
from psycopg2 import extras
db = psycopg2.connect(database=connObject.get("database"),
                              user=connObject.get("user"),
                              password=connObject.get("password"),
                              host=connObject.get("host"),
                              port=int(connObject.get("port")))
# 获得游标对象
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)#RealDictCursor和DictCursor都试过了
# 执行语句
cursor.execute(sql)
# 获取数据.
results = cursor.fetchall()
#输出结果如下,并不能满足我的需要
#RealDictRow([('id', 1), ('name', 'Paul'), ('sex', '男'), ('password', '123456'), ('realname', 'California')])

终于在试验N种方法之后,找到了一个能完美符合需求的,方法如下

import psycopg2
db = psycopg2.connect(database=connObject.get("database"),
                              user=connObject.get("user"),
                              password=connObject.get("password"),
                              host=connObject.get("host"),
                              port=int(connObject.get("port")))
# 获得游标对象
cur = conn.cursor()
# 执行语句
cursor.execute(sql)
# 获取数据并转为字典格式
columns = [desc[0] for desc in cursor.description]
results = [dict(zip(columns, row)) for row in cursor.fetchall()]
#该方法取到的值是这样的
[{'id': 1, 'name': 'Paul', 'sex': '男', 'password': '123456', 'realname': 'California'}, {'id': 2, 'name': 'Allen', 'sex': '男', 'password': '123456', 'realname': 'Texas'}]

再次感谢这位不知名的大哥,参考链接为http://www.voidcn.com/article/p-rgyxljux-bvv.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值