如何使用Python将bson文件转换为json文件?

时间:2016-10-11 13:34:43

标签: python json bson

我有一些bson文件(我没有他们来自的数据库,只有文件,名为file1.bson和file2.bson),我希望能够将它们翻译成json。我的代码如下:

import json
import bson

to_convert = ["./file1", "./file2"]

for i in to_convert:

    INPUTF = i + ".bson"
    OUTPUTF = i + ".json"

    input_file = open(INPUTF, 'r', encoding='utf-8')
    output_file = open(OUTPUTF, 'w', encoding='utf-8')

    reading = (input_file.read()).encode() #reading = (input_file.read()+'\0').encode()
    datas = bson.BSON.decode(reading)
    json.dump(datas, output_file)

它引发了“bson.errors.InvalidBSON:bad eoo”,这似乎表明文件末尾的NULL字符缺失,但即使我手动添加它(如在注释部分中),错误仍然存​​在。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

实际上this回答了我的问题。奇怪的是,bson包的文档记录不多。

import json
import bson

to_convert = ["./file1", "./file2"]

for i in to_convert:

    INPUTF = i + ".bson"
    OUTPUTF = i + ".json"

    input_file = open(INPUTF, 'rb', encoding='utf-8')
    output_file = open(OUTPUTF, 'w', encoding='utf-8')

    raw = (input_file.read())
    datas = bson.decode_all(raw)
    json.dump(datas, output_file)