前言
大家在使用pymysql的時(shí)候,通過fetchall()或fetchone()可以獲得查詢結(jié)果,但這個(gè)返回?cái)?shù)據(jù)是不包含字段信息的(不如php方便)。查閱pymysql源代碼后,其實(shí)獲取查詢結(jié)果源代碼也是非常簡單的,直接調(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ù)的,不需要通過len()獲得。
總結(jié)
好了,先說到這里了。以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選