码迷,mamicode.com
首页 > 数据库 > 详细

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

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

标签:使用   for   数据   问题   sp   on   python   c   对象   

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 返回的数据只能遍历一次

标签:使用   for   数据   问题   sp   on   python   c   对象   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!