在使用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()
获得。
转载请注明出处
《Python的pymysql查询结果获取字段列表》https://www.ywlib.com/archives/111.html (from 一闻自习室)