具有两个不同输出的 bsonfile 的转换

具有两个不同输出的 bsonfile 的转换

我想将一些 bson 文件转换为一些 json 文件。我通过使用 bsondump 函数来完成此操作。

bsondump exemple.bson > example.json

通过 bsondump 的旧版本 2.4.9(取决于 mongodb 的版本),我得到了以下形式的正确输出有效的JSON 文件(它实际上是一些带有键值对的字典)。有时我会升级我的系统,现在 mongodb 2.6.3。它对我的输出有影响...如果字典中的某些值是数字,每次我都会以以下形式对我的数字进行额外补充:

"key": NumberLong(1234567)

对我来说,以简单的形式输出很重要:

"key": 1234567

因为我想在 Python 代码中导入 JSON 文件。在 Python 代码中,我使用 Pandas 将 JSON 转换为 DataFrame。为此我使用

pandas.read_json("example.json")

函数,它给我错误消息,因为它可以找到有效的 JSON 字符串。我想直接在 pandas 中读取 JSON,因此我需要有效的 JSON 格式。我的问题是,在2.6.3版本升级后如何直接获取有效的JSON格式。目前我做了一个代码来删除每一行中的“NumberLong”,但是我的文件有大量行,因此这是时间的问题。如何使用新版本的 MongoDB 获取有效的 JSON 格式?

答案1

bson不是二进制 json,它是二进制扩展json。因此,适当的方法是使用扩展的 json 解析器来理解并正确处理额外的信息。

另一方面,人们意识到与 json 的不兼容可能会产生问题,并且至少有一项废除额外信息的建议并让解释 json 的编程语言来处理它(希望它可以)。

我不确定2.6.3版本的其他好处bsondump是什么。您可以将旧版本(下一个)复制到新安装中。或者,如果其中有其他功能值得使用,则可以修补并编译新版本。

相关内容