Skip to content Skip to sidebar Skip to footer

Mongodb Is Returning Wierdly Formatted Data

When i try to get this data from my mongodb database using flask-restfuland pymongo i get some wierdly formatted data. For example. This is what the data looks like in the database

Solution 1:

No, that's supposed to be like that.

MongoDB uses BSON, which extends JSON with some extra types, such as ObjectId. To represent those in JSON, you get the weird-looking $oid and friends.

The backslashes are most likely added by some tool to allow for quotes inside of a String literal (which is enclosed by quotes). Unless you are somehow double-encoding things.

Solution 2:

flask-restful expects you to return a dictionary and not json here. It would convert the dictionary into json on its own. So your code should look like

defget(self, objectid):
    collection = db["products"]
    result = collection.find_one({"_id": ObjectId(objectid)})
    result['_id'] = result['_id'].__str__()
    return result

When you return jsonflask-restful sees that and infers that it is a string and escapes the double quotes.

Post a Comment for "Mongodb Is Returning Wierdly Formatted Data"