python - web.py sql查询,为什么只能遍历第一遍的结果?

标签 python mysql database web.py

这是我的代码:

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

第二次好像不行。为什么?

最佳答案

根据source code ,底层的 query() 调用返回一个 iterator,它在第一个循环后就耗尽了。

如果你需要多次迭代它,把它转换成一个列表:

info_list = list(user_db.query("select * from tablename where t_id= "))

或者,您可以使用 itertools.tee()创建新的迭代器:

info_list1, info_list2 = itertools.tee(info_list)

关于python - web.py sql查询,为什么只能遍历第一遍的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814119/

相关文章:

python - 仅 Linux 的 PyPI 镜像有多少 TB?

mysql - 如何使用 SQL SELECT 将数字数据类型分配给新列

php - MySQL 一对多查询

asp.net - 数据库错误,供应商代码 17

database - 具有不同发布周期的两个应用程序是否应该共享一个数据库

Python:优化树评估器

python - 如何将坐标从列表同时传递到多个步进电机,而不是按顺序?

python - python中的Numba jit警告解释

javascript - ER_PARSE_ERROR : You have an error in your SQL syntax

php - 如何在 MySQL 中获取 future 日期的数据