Итак, у меня есть огромное количество .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"
Который по-прежнему <type 'str'>
.
я тоже пробовал
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? (конечная цель состоит в том, чтобы передавать данные, разделенные табуляцией, в другую базу данных)
bson
? pypi.python.org/pypi/bson/0.3.2 - person Nikolay Fominyh   schedule 08.08.2012