BSON - это не просто замена JSON.
BSON - это двоичный формат объекта, а не текстовый формат (даже если он хранит строки в кодировке UTF-8)
Ваш нож должен отражать бинарный режим
# input_file = io.open(INPUTF, 'r', encoding='utf-8',errors='ignore') # old
input_file = io.open(INPUTF, 'rb')
^
| (b opens the file in binary mode
-------------------------------- does not need the rest of the encoding/error params)
Вам нужно будет вызвать функцию bson.decode_all (data) вместо загрузки s
# datas = bson.loads(input_file.read()) # old
datas = bson.decode_all(input_file.read()) # python list object
настоятельно рекомендуем вам bson.decode_iter , если ваш конвейер его поддерживает
#datas = bson.loads(input_file.read()) # old
datas = bson.decode_file_iter(input_file) # python generator object
for document in datas:
# do something with each document
# very easy on system io and memory