我不想将整个BSON文档反序列化为python dict,而是希望直接遍历它,利用BSON格式的本机遍历[1,2]
可以使用任何python BSON库吗?我可以很容易地看到获取字典的方法,但是遍历二进制格式的方法似乎并不明显。
答案 0 :(得分:1)
这听起来像你在寻找:https://github.com/bauman/python-bson-streaming
它允许流式传输bson,而不是将整个文件加载到内存中。
来自文档:
from bsonstream import KeyValueBSONInput
from sys import argv
for file in argv[1:]:
f = open(file, 'rb')
stream = KeyValueBSONInput(fh=f, fast_string_prematch="somthing") #remove fast string match if not needed
for id, dict_data in stream:
if id:
...process dict_data...
答案 1 :(得分:0)
您遇到的问题是将BSON字符串转换为迭代器,迭代器本身就是一个对象,您必须实际转换为语言结构,即字典。
即使使用BSON库,它仍然必须将其转换为python理解的可遍历对象,a.k.a a dict。
然而,要回答你的问题:我一无所知。