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'}]
Menggunakan find dalam pymongo akan mendapat objek kursor Jika anda ingin melaksanakan operasi cari dalam cangkerang MongoDB, contohnya:
> db.test.find() { "_id" : ObjectId("5838531e0f3577fc9178b834"), "name" : "zhangsan" }
Anda perlu menggunakan kaedah find_one dan bukannya kaedah cari dalam pymongo:
>>> 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'},...]
Dengan cara ini, anda boleh mendapatkan berbilang keping data.
Apa yang saya tahu ialah melintasi kursor dan menambah senarai satu persatu. Minta petunjuk kepada Allah
Sebenarnya, ia sangat mudah jawapan di atas semuanya traversal, dalam python
array = list(posts.find())#posts是我的collection type(array) #list
Nota tambahan
#list to datafram import pandas as pd df = pd.DataFrame(array)
Menggunakan find dalam pymongo akan mendapat objek kursor Jika anda ingin melaksanakan operasi cari dalam cangkerang MongoDB, contohnya:
Anda perlu menggunakan kaedah find_one dan bukannya kaedah cari dalam pymongo:
Dengan cara ini, anda boleh mendapatkan berbilang keping data.
Apa yang saya tahu ialah melintasi kursor dan menambah senarai satu persatu. Minta petunjuk kepada Allah
Sebenarnya, ia sangat mudah jawapan di atas semuanya traversal, dalam python
Nota tambahan