web.py 使用 db.select 返回的数据只能遍历一次
2014-01-12 12:41
218 查看
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
报错:
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 工厂函数将迭代器转换成列表。当然,转换之后迭代器就空了,但是数据保存到了列表中。
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
报错:
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 工厂函数将迭代器转换成列表。当然,转换之后迭代器就空了,但是数据保存到了列表中。
相关文章推荐
- python使用 db.select 返回的数据只能遍历一次
- 当您通过使用 InfoPath 2010 表单连接到 Web 服务时沙盒中处理的代码包含的、 不返回的数据或您收到一条错误消息
- Web.py Cookbook 简体中文版 - db.delete 数据删除
- [转]Web页面报错: Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用
- select error:不能用DB-library(如isql)或odbc3.7或更早版本将ntext数据或仅使用Unicode排序规则的Unicode数据发送到客户端
- web.db下获取select后返回的column列表
- PL/SQL使用INSERT...SELECT一次插入多行数据
- bootstrap模态框(modal)使用remote方法加载数据,只能加载一次的解决办法
- Web页面报错: Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用.
- 页面使用$.getJSON只获取一次数据,导致多个请求返回的都是第一个结果
- 【转】bootstrap模态框(modal)使用remote方法加载数据,只能加载一次的解决办法
- jQuery Ajax使用FormData上传文件和其他数据,后端web.py获取
- web.py 0.3 新手指南 - db.select 查询
- Web.py Cookbook 简体中文版 - db.upate 数据更新
- bootstrap模态框(modal)使用remote方法加载数据,只能加载一次的解决办法
- [DB][ORACLE][统计函数]使用LAG和LEAD函数可以在一次查询中取出同一字段的前N行的数据和后N行的值
- jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
- 给定一个数组,该数组存贮R,G,B三种字符,将该数组按RGB顺序排序,不能使用辅助内存空间,且只能遍历数组一次。
- web.py 0.3 新手指南 - 使用db.query进行高级数据库查询
- 使用 WCF Web HTTP 编程模型创建返回任意数据的服务