繁体   English   中英

如何使用 python 重命名 json 密钥?

[英]How do i rename json key using python?

我有 json 文件,我需要使用 python 将folder_path键重命名为backup_folder_path

{
  "urn:adsk.wipprod:dm.lineage:smth": {
    "bim_manifest_urn": "urn:foo/bar/z",
    "gs_id": "foobar",
    "versions": {
      "1": "1"
    },
    "folder_path": "/foo/bar"
  },
  "urn:adsk.wipprod:dm.lineage:smth": {
    "bim_manifest_urn": "urn:foo/bar",
    "gs_id": "foobar1",
    "versions": {
      "1": "1"
    },
    "folder_path": "/foo/barС"
  },

我试图做什么:


def edit_string_name():
    with open(r"smth.json", encoding="utf-8") as json_data:
        data = json.load(json_data)
        
        data = {'folder_path'}
        data['backup_folder_path'] = data.pop('folder_path')
        print(data)
    
if __name__ == '__main__':
    edit_string_name()

但似乎什么也没有发生。 当我试图循环通过时,我在终端中得到了废话。

这应该做的工作

def edit_string_name():
  with open("smth.json", "r+", encoding="utf-8") as file:
    data    = json.load(file)
    content = data["urn:adsk.wipprod:dm.lineage:smth"]

    content["backup_folder_path"] = content["folder_path"]
    content.pop("folder_path")
    data["urn:adsk.wipprod:dm.lineage:smth"] = content

    # Updating the file
    file.seek(0)
    file.write(json.dumps(data, indent=4))
    file.truncate()

edit_string_name()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM