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

从JSON文件提取指定键值对并写入新JSON文件的技术问题

提取JSON中指定键值对并写入新文件

要实现从大型JSON文件中提取特定键值对并写入新文件,你可以按照以下步骤操作:

步骤说明

  1. 读取原始JSON:使用Python的json模块加载原始文件内容。
  2. 筛选目标键值:遍历每个JSON对象,只保留你需要的键值对。
  3. 写入新文件:将筛选后的数据写入新的JSON文件,保证格式可读性。

完整代码示例

import json

# 自定义需要保留的键列表,可根据需求添加/修改
required_keys = ["madde", "madde_id", "anlam_say"]

# 读取原始JSON文件
with open("original.json", "r", encoding="utf-8") as input_file:
    original_data = json.load(input_file)

# 提取指定键值对
filtered_data = []
for item in original_data:
    # 仅保留存在于required_keys中的键,避免KeyError
    filtered_item = {key: item[key] for key in required_keys if key in item}
    filtered_data.append(filtered_item)

# 写入新JSON文件
with open("filtered_output.json", "w", encoding="utf-8") as output_file:
    # ensure_ascii=False保留非ASCII字符,indent=2格式化输出
    json.dump(filtered_data, output_file, ensure_ascii=False, indent=2)

关键细节说明

  • 自定义键列表:修改required_keys数组,添加你需要提取的键名即可(比如只需要madde的话,改成required_keys = ["madde"])。
  • 避免KeyError:字典推导式中加入if key in item判断,防止原始JSON对象中缺失目标键导致报错。
  • 字符编码与格式:encoding="utf-8"确保非ASCII字符(如示例中的土耳其语)正确读写;ensure_ascii=False和indent=2让输出文件更易读。

处理超大型JSON文件

如果你的JSON文件体积极大(远超内存容量),可以使用ijson库进行流式处理,避免一次性加载整个文件:

import ijson
import json

required_keys = ["madde"]
filtered_data = []

with open("large_original.json", "r", encoding="utf-8") as input_file:
    # 流式遍历每个JSON对象
    for item in ijson.items(input_file, "item"):
        filtered_item = {key: item[key] for key in required_keys if key in item}
        filtered_data.append(filtered_item)

with open("filtered_output.json", "w", encoding="utf-8") as output_file:
    json.dump(filtered_data, output_file, ensure_ascii=False, indent=2)

使用前需要先安装ijson:pip install ijson

内容的提问来源于stack exchange,提问作者Yusuf Ziya Gülçe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:50:42