Rumah > Soal Jawab > teks badan
find出来直接print是<pymongo.cursor.Cursor object at 0x040DC8D0>
网上看到的都是遍历,如果我想把find出来的结果保存到一个列表就不能保存了,所以请问大神要怎么弄?
巴扎黑2017-04-18 10:01:10
>>> db.test.find()
<pymongo.cursor.Cursor object at 0x108dabf50>
>>>
>>> list(db.test.find())
[{'_id': ObjectId('5839b12eee86fb71849a0905'), 'name': 'Tom'},
{'_id': ObjectId('5839b134ee86fb71849a0906'), 'name': 'Jim'}]
ringa_lee2017-04-18 10:01:10
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.
怪我咯2017-04-18 10:01:10
Apa yang saya tahu ialah melintasi kursor dan menambah senarai satu persatu. Minta petunjuk kepada Allah
PHP中文网2017-04-18 10:01:10
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)