web.py 使用 db.select 返回的数据只能遍历一次
2024-09-07 13:56:14
2013-10-05 23:04:33|
1. web.py 使用 db.select 返回的数据只能遍历一次
import web
db = web.database(dbn='mysql', db='test', user='root', pw='123456')
results = db.query("SELECT * FROM user where username='lily'")
print type(results)
print "results[0][2]:",results[0].password
print type(results[0].password)
for r in results:
print r
import web
db = web.database(dbn='mysql', db='test', user='root', pw='123456')
results = db.query("SELECT * FROM user where username='lily'")
print type(results)
print "results[0][2]:",results[0].password
print type(results[0].password)
for r in results:
print r
报错:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print type(results[0].password)
File "/usr/local/lib/python2.7/dist-packages/web/utils.py", line 536, in __getitem__
raise IndexError, "already passed "+str(i)
IndexError: already passed 0
解决:
参考资料:http://segmentfault.com/q/1010000000095518
Python 中的迭代器本来就是一次性的,无论是生成器表达式还是 yield 都是这样。如果你需要多次使用,应该先用 list 工厂函数将迭代器转换成列表。当然,转换之后迭代器就空了,但是数据保存到了列表中。
最新文章
- checkbox样式更改用户权限操作(MVC)
- POJ2396 Budget
- 使用kvm虚拟出Centos6.5系统相关步骤
- linux shell 脚本获取和替换文件中特定内容
- GROUP BY 與 Null 值
- 20145224&;20145238 《信息安全系统设计基础》 第一次实验
- Mysql编码, Mysql编码流程, Mysql编码顺序, Mysql编码原理, Mysql编码修改依据
- css清除浮动的处理方法
- PostgreSQL and bloat
- SAP存货账龄分析之库存获取
- iOS多线程编程之GCD的使用
- 使用VS2003 发送Email
- EasyUI - Progressbar 进度条控件
- 相机标定 matlab opencv ROS三种方法标定步骤(1)
- Python 中列表生成式和生成器
- MinerConstanits.java 常量类
- 【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限
- LightOJ 1268 Unlucky Strings(KMP+矩阵乘法+基础DP)
- Java Web乱码分析及解决方案
- VGA Output from STM32F4 Discovery board