📜  cursor.fetchall() 到列表 - Python (1)

📅  最后修改于: 2023-12-03 14:40:24.265000             🧑  作者: Mango

以'cursor.fetchall() 到列表 - Python'作主题

在Python中,我们经常使用数据库来保存和检索数据。当我们执行SQL查询时,可以使用cursor.fetchall()方法来获取所有检索结果并将它们存储在一个Python列表中。

以下是一个示例程序,它使用SQLite数据库,并通过cursor.fetchall()方法获取所有记录并将其存储在一个列表中:

import sqlite3

# 连接到数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()

# 执行查询
c.execute('SELECT * FROM users')

# 获取所有结果并存储在列表中
results = c.fetchall()

# 打印结果
for row in results:
    print(row)

# 关闭连接
conn.close()

在上面的示例程序中,我们打开一个SQLite数据库,并查询名为"users"的表。然后,我们使用cursor.fetchall()方法来获取所有结果并将它们存储在一个名为"results"的列表中。最后,我们遍历该列表并打印每行。

请注意,cursor.fetchall()方法返回的是一个元组(tuple)列表。如果你需要将该列表转换为包含字典的列表,则可以使用下面的代码:

import sqlite3
from collections import OrderedDict

# 连接到数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()

# 执行查询
c.execute('SELECT * FROM users')

# 获取所有结果并转换为字典列表
results = []
for row in c.fetchall():
    results.append(OrderedDict(zip([column[0] for column in c.description], row)))

# 打印结果
for row in results:
    print(row)

# 关闭连接
conn.close()

在上面的示例程序中,我们定义了一个包含有序字典的空列表,并使用zip()函数将每一行数据与相应的列名组合起来。然后,我们将这些有序字典添加到列表中,并打印出每一行。

总之,在Python中使用cursor.fetchall()方法可以很方便地将SQL查询结果存储在一个列表中,并进行后续处理。