所以我有大量的.来自MongoDB转储的bson.我在命令行中使用bsondump,将输出作为stdin传输到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呢?