繁体   English   中英

如何使用python替换json文件中的键的键值对

[英]how to replace a key-value pair for a key in json file using python

    {
    "xyz" : {
        "SERVER": "xxx@localhost",
        "WEBHCAT_SERVER": "http://qws.qs.i5.internal.cloudapp.net:50111/templeton/v1/",

    },
    "SNSPARK": {
        "PROJECT_BASE": "/home/databrik/newdp/projects",
        "SCRIPT_BASE": "/home/databrik/newdp/scripts",
        "DATA_FILE_BASE": "/home/databrik"
    },
    "LOCAL": {
        "PROJECT_BASE": "/home/pica/Installation/databricks/platform/projects",
        "SCRIPT_BASE": "/home/pica/Installation/databricks/platform/scripts",
        "DATA_FILE_BASE": "/home/pica",
        "CB_URL_BASE": "http://11.222.222.111:3017/api/v1"
    },
    "DEFAULT_BACKEND": "LOCAL",
    "public": {
        "USE_LDAP": false
    }
}

我上面有json文件,我想通过python代码更改“ LOCAL”键下所有键的值,我的json文件应更改为以下内容:

{
        "xyz" : {
            "SERVER": "xxx@localhost",
            "WEBHCAT_SERVER": "http://qws.qs.i5.internal.cloudapp.net:50111/templeton/v1/",

        },
        "SNSPARK": {
            "PROJECT_BASE": "/home/databrik/newdp/projects",
            "SCRIPT_BASE": "/home/databrik/newdp/scripts",
            "DATA_FILE_BASE": "/home/databrik"
        },
        "LOCAL": {
            "PROJECT_BASE": "/home/louis/databricks/platform/projects",
            "SCRIPT_BASE": "/home/louis/databricks/platform/scripts",
            "DATA_FILE_BASE": "/home/louis",
            "CB_URL_BASE": "http://22.222.222.22:3017/api/v1"
        },
        "DEFAULT_BACKEND": "LOCAL",
        "public": {
            "USE_LDAP": false
        }
    }

有人可以帮忙吗?

使用json模块str.replace

import json

d = """{
    "xyz" : {
        "SERVER": "xxx@localhost",
        "WEBHCAT_SERVER": "http://qws.qs.i5.internal.cloudapp.net:50111/templeton/v1/"

    },
    "SNSPARK": {
        "PROJECT_BASE": "/home/databrik/newdp/projects",
        "SCRIPT_BASE": "/home/databrik/newdp/scripts",
        "DATA_FILE_BASE": "/home/databrik"
    },
    "LOCAL": {
        "PROJECT_BASE": "/home/pica/Installation/databricks/platform/projects",
        "SCRIPT_BASE": "/home/pica/Installation/databricks/platform/scripts",
        "DATA_FILE_BASE": "/home/pica",
        "CB_URL_BASE": "http://11.222.222.111:3017/api/v1"
    },
    "DEFAULT_BACKEND": "LOCAL",
    "public": {
        "USE_LDAP": false
    }
}"""

d = json.loads(d)
for k in d["LOCAL"]:
    d["LOCAL"][k] = d["LOCAL"][k].replace("pica/Installation", "louis")

print(json.dumps(d, indent=2))

输出:

{
  "SNSPARK": {
    "PROJECT_BASE": "/home/databrik/newdp/projects",
    "SCRIPT_BASE": "/home/databrik/newdp/scripts",
    "DATA_FILE_BASE": "/home/databrik"
  },
  "DEFAULT_BACKEND": "LOCAL",
  "public": {
    "USE_LDAP": false
  },
  "LOCAL": {
    "PROJECT_BASE": "/home/pica/louis/databricks/platform/projects",
    "SCRIPT_BASE": "/home/pica/louis/databricks/platform/scripts",
    "DATA_FILE_BASE": "/home/pica",
    "CB_URL_BASE": "http://11.222.222.111:3017/api/v1"
  },
  "xyz": {
    "WEBHCAT_SERVER": "http://qws.qs.i5.internal.cloudapp.net:50111/templeton/v1/",
    "SERVER": "xxx@localhost"
  }
}

暂无
暂无

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

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