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

如何使用Python将JSON中的folder_path键重命名为backup_folder_path

解决JSON文件中键重命名的问题

原代码的问题

你的代码存在几个关键错误,导致无法实现需求:

  • 覆盖了原JSON数据:data = {'folder_path'}这行代码直接把从文件加载的完整JSON数据替换成了一个仅包含'folder_path'的集合,完全丢失了原文件内容。
  • 未遍历目标字典:原JSON的结构是外层为多个URN键,每个键对应的值才是包含folder_path的字典,你没有遍历这些内层字典进行处理。
  • 未将修改写回文件:即使修改了内存中的数据,也没有把更新后的内容保存回原JSON文件。

正确的实现代码

以下是可以实现将所有folder_path重命名为backup_folder_path的Python代码:

import json

def rename_folder_path_key():
    # 加载JSON文件
    with open(r"smth.json", encoding="utf-8") as json_file:
        data = json.load(json_file)
    
    # 遍历每个外层URN对应的字典
    for urn_dict in data.values():
        # 检查是否存在folder_path键,存在则重命名
        if "folder_path" in urn_dict:
            urn_dict["backup_folder_path"] = urn_dict.pop("folder_path")
    
    # 将修改后的数据写回文件
    with open(r"smth.json", "w", encoding="utf-8") as json_file:
        json.dump(data, json_file, indent=2, ensure_ascii=False)
    
    print("键重命名完成,文件已更新")

if __name__ == '__main__':
    rename_folder_path_key()

代码说明

  • 使用json.load()加载文件内容到字典后,通过data.values()遍历每个内层的字典(每个URN对应的条目)。
  • 用dict.pop()方法取出folder_path的值,同时删除该键,再将值赋值给新键backup_folder_path。
  • 最后用json.dump()将修改后的数据写回文件,indent=2保证输出的JSON格式美观,ensure_ascii=False支持保存非ASCII字符(比如你的示例中的/foo/barС)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:00:45