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 json
flask-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"