find出来直接print是<pymongo.cursor.Cursor object at 0x040DC8D0>
网上看到的都是遍历,如果我想把find出来的结果保存到一个列表就不能保存了,所以请问大神要怎么弄?
认证高级PHP讲师
>>> db.test.find() <pymongo.cursor.Cursor object at 0x108dabf50> >>> >>> list(db.test.find()) [{'_id': ObjectId('5839b12eee86fb71849a0905'), 'name': 'Tom'}, {'_id': ObjectId('5839b134ee86fb71849a0906'), 'name': 'Jim'}]
在pymongo中使用find是得到1个游标对象的,如果你想实现MongoDB shell中find操作,例如:
> db.test.find() { "_id" : ObjectId("5838531e0f3577fc9178b834"), "name" : "zhangsan" }
在pymongo中需要使用find_one方法而不是find方法:
>>> print db.test.find_one() {u'_id': ObjectId('5838531e0f3577fc9178b834'), u'name': u'zhangsan'} >>> print db.test.find() <pymongo.cursor.Cursor at 0x7f4ac789e450> >>> result = [] >>> for x in db.test.find(): result.append(x) >>> print(result) >>> [{u'_id': ObjectId('5838531e0f3577fc9178b834'), u'name': u'zhangsan'},...]
这样就可以得到多条数据了。
我知道得就是遍历游标一个一个append到列表中去,难道还有其他办法?求大神指导
其实很简单的,上面的答案都是遍历,在python中
array = list(posts.find())#posts是我的collection type(array) #list
补充一下
#list to datafram import pandas as pd df = pd.DataFrame(array)
在pymongo中使用find是得到1个游标对象的,如果你想实现MongoDB shell中find操作,例如:
在pymongo中需要使用find_one方法而不是find方法:
这样就可以得到多条数据了。
我知道得就是遍历游标一个一个append到列表中去,难道还有其他办法?求大神指导
其实很简单的,上面的答案都是遍历,在python中
补充一下