Как я могу использовать Python для преобразования bsondump MongoDB в JSON?

Итак, у меня есть огромное количество.bson из дампа MongoDB. Я использую bsondump в командной строке, передавая вывод как стандартный ввод в python. Это успешно преобразует BSON в JSON, но на самом деле это строка и, по-видимому, недопустимый JSON.

Например, входящая линия выглядит так:

{ "_id" : ObjectId( "4d9b642b832a4c4fb2000000" ),
  "acted_at" : Date( 1302014955933 ),
  "created_at" : Date( 1302014955933 ),
  "updated_at" : Date( 1302014955933 ),
  "_platform_id" : 3,
  "guid" : 72106535190265857 }

Я полагаю, что это Mongo Extended JSON .

Когда я читаю в такой строке и делаю:

json_line = json.dumps(line)

я получаю:

"{ \"_id\" : ObjectId( \"4d9b642b832a4c4fb2000000\" ),
\"acted_at\" : Date( 1302014955933 ),
\"created_at\" : Date( 1302014955933 ),
\"updated_at\" : Date( 1302014955933 ),
\"_platform_id\" : 3,
\"guid\" : 72106535190265857 }\n"

Который до сих пор .

Я также пробовал

json_line = json.dumps(line, default=json_util.default)

(см. pymongo json _util -обнаружение спама предотвращает третью ссылку )Который, кажется, выводит то же самое, что и дампы выше. загружает выдает ошибку:

json_line = json.loads(line, object_hook=json_util.object_hook)
ValueError: No JSON object could be decoded

Итак, как я могу преобразовать строку TenGen JSON в анализируемый JSON? (конечной целью является передача данных, разделенных вкладками, в другую базу данных)

22
задан Peter Nachbaur 8 August 2012 в 17:59
поделиться