前言
大家在使用pymysql的时候,通过fetchall()
或fetchone()
可以获得查询结果,但这个返回数据是不包含字段信息的(不如php方便)。查阅pymysql源代码后,其实获取查询结果源代码也是非常简单的,直接调用cursor.description
即可。
譬如:
1
2
3
4
5
6
7
8
9
|
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可以看到如下代码:
1
2
3
4
5
6
7
8
9
10
|
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()
获得。
总结
好了,先说到这里了。以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.ywlib.com/archives/111.html