python 的pymongo db.collection.find()出来是个游标,怎么才能转成数据?
PHP中文网
PHP中文网 2017-04-18 09:59:10
0
4
870

find出来直接print是<pymongo.cursor.Cursor object at 0x040DC8D0>

网上看到的都是遍历,如果我想把find出来的结果保存到一个列表就不能保存了,所以请问大神要怎么弄?

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(4)
巴扎黑
>>> 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)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan