【问题标题】:Python - BSON document parsed for one document onlyPython - 仅针对一个文档解析的 BSON 文档
【发布时间】:2020-04-04 12:24:54
【问题描述】:

我有一个要分析的 62,292,248 字节大小的 BSON 文档。我正在使用以下内容:

import bson
f = open('mybson.bson','rb')
s = f.read()
b = bson.loads(s)
f.close()

在控制台上,当我输入b 并回车时,即使s 已读取所有字节,我也只能看到一个文档。我也试过f.read(62292248);但是,b 似乎只有一个文件!

我错过了什么?

【问题讨论】:

  • 那么,您有 一个 BSON 文档,还是有 许多 个 BSON 文档塞进一个文件?
  • 可能是后者;因为它是来自 MongoDB 的转储。
  • 这是~62MB 的文件,您确定您在控制台中只看到一个文件转储吗?我的意思是你的控制台是如何显示这么多数据的?
  • 我没有看到bson.loads() 的整个文件输出。只有一份文件。这就是问题所在。

标签: python json bson


【解决方案1】:

看起来bson.loads 应该只加载一个文档。

我们可以解码 bson 中存在的多个文档,如下所示-

with open('mybson.bson', 'rb') as f:
    content = f.read()
    base = 0
    while base < len(content):
        base, d = bson.decode_document(content, base)
        print(d)

【讨论】:

  • 这是迄今为止对这个问题最有用的答案。我需要将儿子文件加载到管道列表中,只有这样才有效。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2018-01-19
  • 2023-03-28
相关资源
最近更新 更多