2

我目前正在做一个项目,我最终创建了一个非常大的 JSON 字典字典。一次将整个对象保存在内存中会很痛苦,并且由于我正在逐个键计算将进入字典的内容,因此我希望有一种方法可以将每个键写入文件,我最终会将 json 转储为一旦它的值被计算出来。这样我就不需要一次在内存中保存一个以上的键/值对,这太棒了。

对象的形式为:

{key: {key: val, key: val, key:val, etc...},
 key: {key: val, key: val, key:val, etc...},
 key: {key: val, key: val, key:val, etc...},
 etc...
}

如果我只是手动打印 JSON 中字典的开头和结尾以及我打印的每个 JSON 子字典周围的逗号,这不会很难做到,但我认为必须有一种方法可以通过 Python 的 JSON 库之一来做到这一点这样干净多了。想法?

4

1 回答 1

0

Python 的内置json模块加载和转储整个对象,因此您不能直接使用它。有可用的事件驱动(“SAX 风格”)JSON 解析器,例如yajl,它具有Python 绑定

就个人而言,除非必须,否则我尽量不使用 3rd-party 依赖项,因此我可能会手动打印开始/结束/键并使用内置 JSON 模块。或者只是将整个事情留在记忆中。它实际上需要多少内存?请记住,只有在您分析并发现它是一个问题时才进行优化。:-)

于 2012-05-15T15:58:32.193 回答