Mam więc ogromną ilość .bson ze zrzutu MongoDB. Używam bsondump w wierszu polecenia, wyprowadzania danych wyjściowych jako stdin do Pythona. To z powodzeniem konwertuje z BSON na "JSON", ale w rzeczywistości jest ciągiem i pozornie nie legalnym JSON.Jak mogę użyć języka Python do przekształcenia bsonduktu MongoDB w JSON?
Na przykład linia przychodząca wygląda następująco:
{ "_id" : ObjectId("4d9b642b832a4c4fb2000000"),
"acted_at" : Date(1302014955933),
"created_at" : Date(1302014955933),
"updated_at" : Date(1302014955933),
"_platform_id" : 3,
"guid" : 72106535190265857 }
Które I belive jest Mongo Extended JSON.
Kiedy czytam w takiej linii i zrobić:
json_line = json.dumps(line)
uzyskać:
"{ \"_id\" : ObjectId(\"4d9b642b832a4c4fb2000000\"),
\"acted_at\" : Date(1302014955933),
\"created_at\" : Date(1302014955933),
\"updated_at\" : Date(1302014955933),
\"_platform_id\" : 3,
\"guid\" : 72106535190265857 }\n"
który jest nadal <type 'str'>
.
Próbowałem również
json_line = json.dumps(line, default=json_util.default)
(patrz pymongo json_util - wykrywanie spamu zapobiega trzeciego linku) który wydaje się tak samo jak wyjście wysypisk powyżej. obciążenia daje błąd:
json_line = json.loads(line, object_hook=json_util.object_hook)
ValueError: No JSON object could be decoded
Jak mogę przekształcić ciąg TenGen JSON w parsowany JSON? (celem końcowym jest przesyłanie danych oddzielonych tabulatorami do innej bazy danych)
Czy spojrzał na 'bson'? http://pypi.python.org/pypi/bson/0.3.2 –
Czy to coś innego niż usunięcie zależności Mongo? Nie rozumiem, jak to może być mój problem, ale popatrzę na to jeszcze trochę. –
możliwy duplikat [Nie można deserializować obiektu PyMongo ObjectId z JSON] (http://stackoverflow.com/questions/8409194/unable-to-deserialize-pymongo-objectid-from-json) –