如何用Python批量修改千个JSON文件指定行的数值序列?
批量修改JSON文件指定字段的Python脚本
脚本实现
import os import json # 替换为你的JSON文件所在目录路径 JSON_DIR = "./json_files" # 获取目录下所有JSON文件并按名称排序(确保顺序正确) json_files = sorted([f for f in os.listdir(JSON_DIR) if f.endswith(".json")]) # 遍历文件,按顺序修改name字段 for idx, filename in enumerate(json_files, start=1): file_path = os.path.join(JSON_DIR, filename) try: # 读取并解析JSON文件 with open(file_path, "r", encoding="utf-8") as f: data = json.load(f) # 修改name字段 data["name"] = f"carl {idx}" # 将修改后的内容写回文件,保持JSON格式缩进(这里用4空格缩进,可根据需求调整) with open(file_path, "w", encoding="utf-8") as f: json.dump(data, f, indent=4, ensure_ascii=False) print(f"已处理文件: {filename} -> 修改为name: 'carl {idx}'") except Exception as e: print(f"处理文件 {filename} 时出错: {str(e)}")
关键说明
- 文件排序:用
sorted()确保文件按名称顺序处理,如果你文件命名有特定规则(比如data_001.json、data_002.json),排序后会自动按数字顺序排列。 - JSON安全修改:直接解析JSON对象修改字段,比硬改文本行更稳妥,能避免因JSON格式差异(比如空格、换行位置不同)导致的文件损坏。
- 异常处理:加入
try-except块,单个文件出错不会中断整个批量处理流程,方便排查问题。 - 编码与缩进:用
utf-8编码保证中文等特殊字符正常读写,indent=4保持JSON文件的可读性,可根据原文件格式调整缩进值。
注意事项
- 请先备份所有JSON文件,避免修改出错导致数据丢失。
- 确保所有目标JSON文件中都存在
name字段,否则脚本会抛出KeyError,如果有部分文件没有该字段,可在修改前加入判断:if "name" in data:。 - 如果你的文件不是按名称自然排序(比如文件名无规律),需要自己调整文件列表的排序逻辑,保证顺序符合你的需求。
内容的提问来源于stack exchange,提问作者David Ross
相关产品推荐
相关产品推荐

