Quindi ho un'enorme quantità di .bson da un dump di MongoDB. Sto usando bsondump sulla riga di comando, piping l'output come stdin a python. Questo converte con successo da BSON a 'JSON' ma in realtà è una stringa, e apparentemente non legale JSON.Come posso usare Python per trasformare bsondump di MongoDB in JSON?
Per esempio una linea in ingresso si presenta così:
{ "_id" : ObjectId("4d9b642b832a4c4fb2000000"),
"acted_at" : Date(1302014955933),
"created_at" : Date(1302014955933),
"updated_at" : Date(1302014955933),
"_platform_id" : 3,
"guid" : 72106535190265857 }
Quale I belive è Mongo Extended JSON.
Quando ho letto in una tale linea e fare:
json_line = json.dumps(line)
ottengo:
"{ \"_id\" : ObjectId(\"4d9b642b832a4c4fb2000000\"),
\"acted_at\" : Date(1302014955933),
\"created_at\" : Date(1302014955933),
\"updated_at\" : Date(1302014955933),
\"_platform_id\" : 3,
\"guid\" : 72106535190265857 }\n"
che è ancora <type 'str'>
.
Ho anche provato
json_line = json.dumps(line, default=json_util.default)
(vedi pymongo json_util - rilevamento dello spam impedisce un terzo link) che sembra uscita lo stesso di discariche sopra. carichi dà un errore:
json_line = json.loads(line, object_hook=json_util.object_hook)
ValueError: No JSON object could be decoded
Quindi, come posso trasformare la stringa di TenGen JSON in JSON parseable? (l'obiettivo finale è quello di trasmettere scheda dati separati a un altro database)
Hai guardato 'bson'? http://pypi.python.org/pypi/bson/0.3.2 –
Non fa altro che rimuovere una dipendenza Mongo? Non capisco come possa essere il mio problema, ma lo guarderò ancora un po '. –
possibile duplicato di [Impossibile deserializzare PyMongo ObjectId da JSON] (http://stackoverflow.com/questions/8409194/unable-to-deserialize-pymongo-objectid-from-json) –