Jak mogę użyć Pythona do przekształcenia bsondump MongoDB w JSON?

Więc mam ogromną ilość .bson z zrzutu MongoDB. ja używambsondump w linii poleceń, potokuj wyjście jako stdin do pythona. To z powodzeniem konwertuje z BSON na „JSON”, ale w rzeczywistości jest to ciąg znaków i pozornie nie jest legalny JSON.

Na przykład linia przychodząca wygląda tak:

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

W co wierzęMongo Extended JSON.

Kiedy czytam w takim wierszu i robię:

json_line = json.dumps(line)

Dostaję:

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

Co jest nadal<type 'str'>.

Próbowałem też

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

(patrz pymongo json_util - wykrywanie spamu zapobiega trzeciemu łączu), które wydaje się wyprowadzać tak samo jak zrzuty powyżej. obciążenia powodują błąd:

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

Jak więc mogę przekształcić ciąg TenGen JSON w parseable JSON? (celem końcowym jest strumieniowanie danych rozdzielonych tabulatorami do innej bazy danych)

questionAnswers(3)

yourAnswerToTheQuestion