Python使用pymysql小技巧

611次阅读  |  发布于5年以前

在使用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() 获得。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8