Python的pymysql查询结果获取字段列表

发布时间:2017年06月03日 // 分类:代码 // 暂无评论

在使用pymysql的时候,通过fetchall()或fetchone()可以获得查询结果,但这个返回数据是不包含字段信息的(不如php方便)。查阅pymysql源代码后,其实获取查询结果源代码也是非常简单的,直接调用cursor.description即可。

譬如:

db = pymysql.connect(...)
cur = db.cursor()
cur.execute(sql)
print(cur.description)
result = cur.fetchall()
data_dict=[]
for field in cur.description:
    data_dict.append(field[0])
print(data_dict)

在pymysql的pymysql/cursors.py中,找到class Cursor可以看到如下代码:

def __init__(self, connection):
    self.connection = connection
    self.description = None
    self.rownumber = 0
    self.rowcount = -1
    self.arraysize = 1
    self._executed = None
    self._result = None
    self._rows = None
    self._warnings_handled = False

因此,调用cur.rowcount是可以迅速返回查询结果记录数的,不需要通过len()获得。

本文固定链接
https://www.ywlib.com/archives/111.html

标签
python, pymysql

添加新评论 »

分类
随机文章
最新文章
最近回复
  • amos: 真管用!!!感谢版主
  • Kent: 优秀!
  • Kent: 关于页面里有我的邮箱
  • kincae: 你好,找了很多文档就你的这篇解决了我的问题,可以留个联系方式吗
  • xuesheng: phpredis版本的问题。 phpredis 5.3.0 fixed. * Use long...
  • Proxmox VE 6.1 配置源及关闭订阅提醒 - ZIMRI`Blog: [...]原文链接 https://www.ywlib.com/archives/150.ht...
  • 夏目贵志: 感谢解决困惑我2小时的问题!!!
  • Kent: 啊。。好的。。谢谢你
  • zhuohua liu: 你的网站被Norton Safe Web列为恶意网站,自动拦截的,去发个mail洗白吧,不然影...
  • typecho模板: 只调用随机文章的内容怎么操作啊?类似多思多金博主的你好污啊那种样子的