Pymongo/bson: Convert python.cursor.Cursor object to serializable/JSON object

后端 未结 3 1252
臣服心动
臣服心动 2021-02-05 06:14

New to MongoDb and Python (webapp2). So, I was fetching some data from a mongodb database. But I was unable to use json.dumps on the r

相关标签:
3条回答
  • 2021-02-05 06:23

    Simple Solution

     // Use dumps from bson.json_util:
    from bson.json_util import dumps
    
    @app.route("/")
    def home_page():
    
        booking = dumps(mongo.db.bookings.find())
        print booking
        return  booking
    
    0 讨论(0)
  • 2021-02-05 06:23

    Yes, of course you can use the dumps() in bson.json_util package. But, the dumps() will give you quoted results. To get clear json result you can use the following code.

    clean_json = re.compile('ISODate\(("[^"]+")\)').sub('\\1', 
            dumps(my_db._my_collection.find(query), 
                     json_options=CANONICAL_JSON_OPTIONS))
    json_obj = json.loads(clean_json)
    
    0 讨论(0)
  • 2021-02-05 06:27

    Use dumps from bson.json_util:

    >>> c = pymongo.MongoClient()
    >>> c.test.test.count()
    5
    >>> from bson.json_util import dumps
    >>> dumps(c.test.test.find())
    '[{"_id": {"$oid": "555cb3a7fa5bd85b81d5a624"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a625"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a626"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a627"}}, {"_id": {"$oid": "555cb3a7fa5bd85b81d5a628"}}]'
    
    0 讨论(0)
提交回复
热议问题