我有 1000 多个 JSON 文件,看起来像
{
"name": "Some name",
"part_num": "123456",
"other_config": {
// Large amount of objects
},
"some more": {
// Large amount of objects
}
// etc
}
当我的程序启动时,它必须扫描包含所有这些 JSON 文件的目录,加载每个文件,并提取 "name"
和 "part_num"
值并用这些值填充 ListView 。然后,用户选择一个,然后重新解析该配置并采取适当的操作。
问题是读取许多文件需要一段时间。我通过使用 multiprocessing
将工作放在后台的所有可用核心上,然后在完成后填充 ListView ,在一定程度上缓解了这个问题,但我仍然受到 IO 的限制。因为我知道这段代码将在处理器和硬盘驱动器比我慢的计算机上运行,所以这个速度是 Not Acceptable 。
平均情况是我需要的值位于文件的开头,但我不能假设在最坏的情况下会出现这种情况。 有没有办法迭代解析 JSON 文件,以便我可以更快地从这些文件中加载我需要的内容?
我可以求助于正则表达式 but I'd really prefer not to 。
最佳答案
YAJL是一个事件驱动的解析器,具有 Python bindings 。这样,一旦检索到所需的信息,您就可以停止解析。
关于python - 迭代解析 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885797/