簡體   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