我目前正在从事一个项目,我最终创建了一个非常大的 JSON 字典字典。一次将整个对象保存在内存中会很痛苦,并且由于我正在逐个键地计算将进入字典的内容,所以我希望有一种方法可以将每个键写入文件,我最终会将 json 转储到 as一旦计算出它的值(value)。这样一来,我永远不需要一次在内存中保存多个键/值对,这太棒了。
对象的形式是:
{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 库更简洁。想法?
请您参考如下方法:
Python 的内置 json模块加载和转储整个对象,所以你不能直接用它来做。有可用的事件驱动 ( "SAX style" ) JSON 解析器,例如 yajl , 其中有 Python bindings .
就我个人而言,除非万不得已,否则我尽量不使用第 3 方依赖项,因此我可能会手动打印开头/结尾/键并使用内置的 JSON 模块。或者只是将整个事情留在内存中。它实际需要多少内存?请记住,只有在您分析并发现它是一个问题后才进行优化。 :-)
