我有一个很大的json-file(太大了,内存无法容纳),结构如下:
{
"commonVal": "foo",
"entries": [
{ "bar": "baz1" },
{ "bar": "baz2" },
...,
]
}
我想把这个json文件处理成这样的对象:
commonVal: foo, bar: baz1
commonVal: foo, bar: baz2
...
即
1.读取commonVal
(在列表之外)并将其存储在变量中,
1.逐个迭代entries
我有ijson
库。
我可以使用kvitems
执行第1步,使用items
执行第2步,但我不知道如何将两者“混合”起来(我非常希望避免使用events-api,因为列表中的条目比示例中的条目更复杂)。
1条答案
按热度按时间rsl1atfo1#
您需要使用
ijson.parse
,最好结合使用事件拦截机制。ijson.parse
将允许您迭代JSON文件中的每个事件。使用此功能,您应该能够读取公共数据,并确定大列表何时开始。然后您可以将其余结果转发到ijson.items
。查看事件拦截机制文档中的示例,经过一些简单的修改,它应该非常符合您的需要。