Rumah  >  Soal Jawab  >  teks badan

python 的pymongo db.collection.find()出来是个游标,怎么才能转成数据?

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

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

PHP中文网PHP中文网2741 hari yang lalu834

membalas semua(4)saya akan balas

  • 巴扎黑

    巴扎黑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'}]

    balas
    0
  • ringa_lee

    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.

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:01:10

    Apa yang saya tahu ialah melintasi kursor dan menambah senarai satu persatu. Minta petunjuk kepada Allah

    balas
    0
  • PHP中文网

    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)

    balas
    0
  • Batalbalas