MySQL pymysql fetchall()结果作为字典?

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选项,可以将结果作为字典返回。如此一来,我们的查询结果会变得更加便于理解和操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程