如何在python中将值从一个json模式映射到另一个json模式?

如何在python中将值从一个json模式映射到另一个json模式?,python,json,Python,Json,我有一个json模式,模式如下: Country:{ city:{ value1:0, value2:1, value3:2, value4:3, value5:4, value6:5 } } 我需要将上述值映射到另一个json模式,如下所示: 如何在从上面的模式中提

我有一个json模式,模式如下:

   Country:{
          city:{
             value1:0,
             value2:1,
             value3:2,
             value4:3,
             value5:4,
             value6:5
             }
           }
我需要将上述值映射到另一个json模式,如下所示: 如何在从上面的模式中提取信息的基础上构建下面的模式

        Country:{
            city:{
                value_1:0,
                value_2:1,
                suburb1:{
                    value_3:2,
                    value_4:3
                    },
                suburb2:{
                    value_4:4
                    value_5:5
                    }
                },
            }

您可以通过以下方式实现:

import json

country_json = '''Country:{
          city:{
             value1:0,
             value2:1,
             value3:2,
             value4:3,
             value5:4,
             value6:5
             }
           }'''

country_json = country_json.replace(" ", "").replace('\n', '')
country_json = country_json.replace(':', '":').replace(':{', ':{"').replace(',', ',"')
country_json = '{"' + country_json + '}'

country = json.loads(country_json)

print(country)

city = country['Country']['city']

suburb1 = {}
suburb2 = {}

for k, v in city.items():
    if k in ["value3", "value4"]:
        suburb1.update({k: v})

    if k in ["value4", "value5"]:
        suburb2.update({k: v})

city.update({
    'suburb1': suburb1,
    'suburb2': suburb2,
})

for k in ["value3", "value4", "value5", "value6"]:
    city.pop(k)

print(json.dumps(country, indent=4))

country = json.dumps(country, indent=4).replace('"', '')
print(country)

是的。工作。。。谢谢我想知道输入文件中是否缺少一些值。。。例如,缺少value2,我们如何创建一个通用脚本来检查可用的键并将它们相应地映射到新的json格式使用
get(k,默认值)
而不是
[k]