使用Python批量更新JSON文件多个条目的指定字段值
Python批量更新JSON配置指定字段实现
适用场景
针对根节点下存在Section数组、数组内为结构一致配置条目的JSON文件,批量替换所有条目中B、S、C、T四个版本字段为指定值,其余字段完全保留原有内容。
依赖说明
仅使用Python标准库json,无需安装第三方依赖,Python3.6+版本均可运行。
完整实现代码
import json # 待更新的版本字段映射,可根据实际需求调整值 UPDATE_FIELDS = { "B": "3.11.0.904.175", "S": "3.11.0.183", "C": "3.11.0.029", "T": "3.11.0.007" } # 按需修改文件路径 SRC_FILE = "original_config.json" DST_FILE = "updated_config.json" with open(SRC_FILE, "r", encoding="utf-8") as f: data = json.load(f) # 遍历Section所有条目更新字段 for item in data.get("Section", []): item.update(UPDATE_FIELDS) # 写入更新后的文件,保留格式化缩进,避免中文乱码 with open(DST_FILE, "w", encoding="utf-8") as f: json.dump(data, f, indent=2, ensure_ascii=False)
可选调整项
- 如果要求仅当条目原本存在对应字段时才替换、不新增缺失字段,把遍历部分的代码替换为如下逻辑即可:
for item in data.get("Section", []): for k in UPDATE_FIELDS: if k in item: item[k] = UPDATE_FIELDS[k]
- 如果JSON文件编码为GBK/GB2312,把
open方法里的encoding参数改成对应编码即可 - 如果不需要输出格式化的JSON,把
json.dump里的indent=2参数去掉即可减小文件体积 - 如果需要直接覆盖原文件,把
DST_FILE改成和SRC_FILE一致即可,建议先备份原文件再操作
内容的提问来源于stack exchange,提问作者user3688785
相关产品推荐
相关产品推荐

