在使用pymysql的時(shí)候,通過(guò)fetchall()或fetchone()可以獲得查詢結(jié)果,但這個(gè)返回?cái)?shù)據(jù)是不包含字段信息的(不如php方便)。查閱pymysql源代碼后,其實(shí)獲取查詢結(jié)果源代碼也是非常簡(jiǎn)單的,直接調(diào)用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
因此,調(diào)用 cur.rowcount 是可以迅速返回查詢結(jié)果記錄數(shù)的,不需要通過(guò) len() 獲得。
新聞熱點(diǎn)
疑難解答
圖片精選