假设我执行以下查询:
>>> for record in results:
... print(record['path'])
...
Top.Collections.Pictures.Astronomy.Stars
Top.Collections.Pictures.Astronomy.Galaxies
Top.Collections.Pictures.Astronomy.Astronauts
它按预期返回行:
>>> for record in results:
... print(record['path'])
...
>>>
当我尝试第二次或第三次迭代时,对象为空:
{{1}}
如何保存和重复使用ResultProxy多次迭代?
答案 0 :(得分:5)
你可能有一个迭代器对象被返回,所以一旦它迭代完毕后你就会筋疲力尽,你就不能再重复它了。假设您的结果不是很大,您可以这样做:
results = db.engine.execute(sql_query)
results = list(results)
将迭代器对象转换为一个列表,你可以多次迭代它。