Skip to main content
 首页 » 编程设计

Python之SQLite SELECT 查询只能使用一次

2025年05月04日14think

我有一个如下所示的 sqlite 查询:

db_rows = db_cursor.execute( 
    "SELECT * FROM my_table" 
) 
 
# check1 
for row in db_rows: 
    print(row) 
 
# check2 
for row in db_rows: 
    print(row) 

发生的情况是第一个 for 循环输出所有行,而第二个 for 循环根本不输出任何我觉得很奇怪的东西。这是为什么?有没有办法让我多次重复使用 db_rows?也许这是一个错误?

我需要这个因为我有一些嵌套代码(for's 和 if's)应该重新使用 db_rows 并且相信重新使用应该已经在内存中的 db_rows 应该更快而不是再次执行查询并且对内循环的每次迭代再次进行一次。

谢谢。

请您参考如下方法:

... it should be faster to just re-use db_rows that should be already in memory ...

除了它不在内存中;它一次从数据库中提取一行。如果要将结果拉入内存,请转换为列表。

row_list = list(db_rows) 
 
for row in row_list: 
   ...