如何使用映射字典批量替换目标JSON字典中的匹配键值与元素
实现方案(Python版)
核心逻辑
总共需要做两层替换,无匹配值时保留原值即可:
- 第一层:替换原JSON的一级键
- 第二层:替换一级键对应列表中的每一个元素
完整代码示例
import json # 1. 定义替换映射字典 replace_map = {'a': 'abc', 'b': 'cdf'} # 2. 读取原JSON数据:如果是JSON字符串就把json.load换成json.loads with open('原文件路径.json', 'r', encoding='utf-8') as f: original_data = json.load(f) # 3. 执行替换逻辑 processed_data = {} for old_key, value_list in original_data.items(): # 替换一级键 new_key = replace_map.get(old_key, old_key) # 替换列表内的每个元素 new_value_list = [replace_map.get(item, item) for item in value_list] processed_data[new_key] = new_value_list # 4. 输出/保存结果 # 打印验证结果 print(json.dumps(processed_data, indent=2, ensure_ascii=False)) # 写入新JSON文件 with open('替换后文件路径.json', 'w', encoding='utf-8') as f: json.dump(processed_data, f, indent=2, ensure_ascii=False)
效果验证
用你给出的示例数据测试,输出结果和预期完全一致:
{ "abc": ["c", "d", "e"], "cdf": ["abc", "c", "e"], "c": ["a", "cdf", "d"] }
注意:如果你的实际JSON存在更深的嵌套(比如列表里还有字典、多层嵌套列表),可以把元素替换逻辑改成递归实现,适配更多场景。
内容的提问来源于stack exchange,提问作者Manish Verma
相关产品推荐
相关产品推荐

