假设我执行以下查询:
results = db.engine.execute(sql_query)其中,它按预期返回行:
>>> 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'])
...
>>> 如何保存和重用ResultProxy以多次迭代它?
发布于 2016-10-05 17:55:15
您可能有一个迭代器对象被返回,所以一旦它在迭代之后耗尽,就不能再遍历它了。假设您的结果不是非常大,您可以这样做:
results = db.engine.execute(sql_query)
results = list(results)这将迭代器对象转换为一个列表,您可以尽可能多地遍历它。
https://stackoverflow.com/questions/39880685
复制相似问题