You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ijson处理超大JSON文件:提取公共值并遍历条目

处理超大JSON:结合ijson提取公共值与遍历条目

可以通过两次解析文件的方式结合kvitems和items,既避免使用events API,又能高效处理超大文件:

import ijson

with open('large_file.json', 'r') as f:
    # 第一步:读取并保存commonVal
    common_val = None
    for prefix, key, value in ijson.kvitems(f, ''):
        if key == 'commonVal':
            common_val = value
            break  # 拿到目标值后立即停止,避免读取后续大数组
    
    # 重置文件指针到开头,准备遍历entries
    f.seek(0)
    
    # 第二步:逐个遍历entries中的条目并拼接结果
    for entry in ijson.items(f, 'entries.item'):
        print(f"commonVal: {common_val}, bar: {entry['bar']}")

关键说明:

  • 第一次解析用kvitems遍历根节点的键值对,找到commonVal就停止,不会加载后续的entries数组,内存占用极低。
  • 调用f.seek(0)重置文件指针后,第二次用items按路径entries.item逐个提取数组元素,每个元素都是完整的条目对象,适配实际复杂的条目结构。
  • 整个过程无需将整个JSON载入内存,完全符合超大文件的处理需求。

内容的提问来源于stack exchange,提问作者aioobe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:05:00