这是我的代码:
import web
user_db = web.database(dbn='mysql', ....)
info_list = user_db.query("select * from tablename where t_id= ")
for info in info_list:
# work ok at first time, print the correct id
print info.id
for info in info_list:
# Code can't reach here
print info.id
每个人的第二次似乎都不起作用。为什么?
根据源代码,底层query()
调用返回一个迭代器,该迭代器在第一个循环后耗尽。
如果需要多次迭代它,请将其转换为列表:
info_list = list(user_db.query("select * from tablename where t_id= "))
或者,您可以使用itertools.tee()
创建新的迭代器:
info_list1, info_list2 = itertools.tee(info_list)