preface
When you’re using pymysql, pass fetchall() or fetchone() Query results are available, but the returned data does not contain field information (not as convenient as php). After looking up the pymysql source code, actually get the query result source code is also very simple, direct call cursor.description Can.
Such as:
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)
In pymysql/ cursors.py of pymysql, find class Cursor and see the following code:
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
So, call cur.rowcount Can quickly return the number of query result records, no need to pass len() To obtain.
conclusion