Ich bin anscheinend nicht in der Lage, mein MongoDB-JSON-Dokument mit dem BSON json_util zu deserialisieren .
Die Funktion json.loads unterdrückt die Zeichenfolge ObjectId()
. Ich hatte verstanden, dass json_util das ObjectId-Format von MongoDB handhaben und in brauchbares JSON transformieren kann.
Python-Code:
%Vor%Ich bekomme die Decoder-Ausnahme:
%Vor%Vermisse ich etwas?
Hier gibt es zwei Probleme:
Die Zeichenfolge, die Sie versuchen, JSON-decode, ist nicht JSON, es ist die Zeichenfolgendarstellung eines Python-Wörterbuchs. Das Problem ist insbesondere, dass u'_id'
kein gültiger JSON-Schlüssel ist (JSON-Schlüssel sind in Anführungszeichen geschriebene Strings; das "u" gibt hier eine Python-Unicode-Zeichenfolge an, die in JSON bedeutungslos ist)
json_util.object_hook
macht ObjectId
nicht für JSON verfügbar; Das Modul json
dekodiert den JSON und ruft dann den object_hook
-Rückruf mit jedem dekodierten Objekt auf. json_util.object_hook
sucht nach bestimmten Mustern, die im strikten Modus von MongoDB Extended JSON definiert sind / p>
Siehe @ jdi's Antwort für Beispiele, wie man json_util
richtig einsetzt.