MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

PyMongo ObjectId kann nicht von JSON deserialisiert werden

Ich denke, Ihre Zeichenfolgenform sieht tatsächlich wie die Python-Darstellung aus ...

s = '{"_id": {"$oid": "4edebd262ae5e93b41000000"}}'
u = json.loads(s, object_hook=json_util.object_hook)

print u  # Result:  {u'_id': ObjectId('4edebd262ae5e93b41000000')}

s = json.dumps(u, default=json_util.default)

print s  # Result:  {"_id": {"$oid": "4edebd262ae5e93b41000000"}}

Die bson.json_util.object_hook-Funktion scheint keine Behandlung dafür zu haben, dass ObjectId() in der tatsächlichen JSON-String-Darstellung vorhanden ist.