首页 > 数据库技术 > 详细

python使用 db.select 返回的数据只能遍历一次

时间:2014-08-23 15:21:20      阅读:916      评论:0      收藏:0      [点我收藏+]

python中通过find从mongo中查出的数据,或者通过select返回的数据,其实返回的是游标,当你进行便利一次之后,游标指向最后,

所以当你再一次进行便利时,便出现数据为空的现象。

解决办法:通过list()进行数据的强制转换     lists = list(mongo中返回的数据)

 

但是这样又会出现新的问题:

1.list转换后的数据只有指,没有列明

2.数据过大时,进行数据转换时性能炒鸡差。。

 

解决办法:

1.使用namedtuple 和 map object。

2.使用map和namedtuple的时候,游标要使用fetchall()方法。一次行取出所有结果,然后调用map方法将所有的数据map到Record object上。

3.返回的map object可以调用for方法进行遍历。map object类似一个Record object列表。

4.namedtuple生成的对象,访问的时候是用dot来访问数据的。

 

 

 

 

    

python使用 db.select 返回的数据只能遍历一次

原文:http://www.cnblogs.com/tangchuanyang/p/3931065.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!