python - 迭代解析 JSON 文件

标签 python json

我有 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/

相关文章:

arrays - 如何快速比较和显示 TableView 中numberOfRowsInSection中的不同数组计数

python - sudo/suid 非根嵌套失败

python - 无法在 for 循环中重置计数器

python - CSV 中的 URL 未传递给函数

android - JSON 解析为具有多个对象 Android 的 ListView

json - golang - 从序列化中省略 json 属性的优雅方式

python - Ipython 笔记本缓存问题

python - 类似Python中的包含?

c# - 序列化 LINQ to SQL 类时出现循环引用异常

ios - 使用 CoreData 而不是仅使用 get 请求获取数据并将其保存在局部变量中的原因