f.read的Python内存错误

时间:2016-03-23 12:13:18

标签: python bson memory-consumption

我在python中遇到内存问题“Python内存错误”。实际上,我尝试使用以下脚本从大.bson文件中恢复数据:

with open('xxxx.bson','rb') as f:
    data = bson.decode_all(f.read())

错误消息:

data = bson.decode_all(f.read())
MemoryError

感谢您提供的任何帮助

2 个答案:

答案 0 :(得分:1)

您可以通过切换到decode_file_iter来减少内存消耗,其中1)需要文件(而不是其内容)作为输入,2)返回生成器。

答案 1 :(得分:0)

我使用此库:https://github.com/bauman/python-bson-streaming

from bsonstream import KeyValueBSONInput
f = open("xxxx.bson", 'rb')
stream = KeyValueBSONInput(fh=f)
for dict_data in stream:
    print dict_data
f.close()