MySQL pymysql fetchall()结果作为字典?
阅读更多:MySQL 教程
什么是fetchall()
在Python连接到MySQL数据库时,可以使用pymysql库来执行SQL语句。pymysql库提供了一个fetchall()函数来获取SQL查询的所有结果。fetchall()函数返回一个结果集合作为元组,其中每个元组表示一行结果。例如:
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')
cursor = conn.cursor()
cursor.execute('SELECT * FROM users')
results = cursor.fetchall()
print(results)
运行以上代码,将打印出所有用户的结果:
((1, 'John', 'Doe', 'john.doe@example.com'), (2, 'Jane', 'Doe', 'jane.doe@example.com'))
fetchall()字典结果
然而,虽然使用上面的方式可以获得非常详细的结果,但有时候我们想要将结果作为字典返回,这就需要作出一些改变。
cursor = conn.cursor(pymysql.cursors.DictCursor)
cursor.execute('SELECT * FROM users')
results = cursor.fetchall()
print(results)
在这种情况下,将打印出一个字典代替元组:
[
{'id': 1, 'first_name': 'John', 'last_name': 'Doe', 'email': 'john.doe@example.com'},
{'id': 2, 'first_name': 'Jane', 'last_name': 'Doe', 'email': 'jane.doe@example.com'},
]
如你所见,每个字典返回了一行结果,其中字典的键值为每一列的列名。
怎么判断使用which
如果你希望使用上述方法将fetchall()的结果返回为字典,请使用拥有两个参数的cursor函数。其中第二个参数用于指定使用哪种类型的游标。
cursor = conn.cursor(pymysql.cursors.Cursor)
: 默认游标类型,返回元组。cursor = conn.cursor(pymysql.cursors.DictCursor)
: 返回字典。
总结
在Python连接到MySQL数据库时,pymysql库提供了一个fetchall()函数来获取SQL查询的所有结果。使用cursor函数中的pymysql.cursors.DictCursor选项,可以将结果作为字典返回。如此一来,我们的查询结果会变得更加便于理解和操作。