我有一些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字符缺失,但即使我手动添加它(如在注释部分中),错误仍然存在。
我该如何解决这个问题?
答案 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)