假设我执行以下查询:
results = db.engine.execute(sql_query)
Run Code Online (Sandbox Code Playgroud)
它按预期返回行:
>>> for record in results:
... print(record['path'])
...
Top.Collections.Pictures.Astronomy.Stars
Top.Collections.Pictures.Astronomy.Galaxies
Top.Collections.Pictures.Astronomy.Astronauts
Run Code Online (Sandbox Code Playgroud)
当我尝试第二次或第三次迭代它时,对象为空:
>>> for record in results:
... print(record['path'])
...
>>>
Run Code Online (Sandbox Code Playgroud)
如何保存和重用ResultProxy以多次迭代它?
你可能有一个迭代器对象被返回,所以一旦它迭代后它已经耗尽,你就不能再重复它了.假设您的结果不是很大,您可以:
results = db.engine.execute(sql_query)
results = list(results)
Run Code Online (Sandbox Code Playgroud)
这会将迭代器对象转换为一个列表,您可以像往常一样迭代它.
| 归档时间: |
|
| 查看次数: |
1246 次 |
| 最近记录: |