如何使用python创建条件JSON?

2024-06-29 01:08:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在我只需要添加条件数据的循环中如何构造json,例如:

        {
         "Country" : [
           {
             "america": {
               "population": "23234234",
               "GDP": "12",
               "measureInVolume": "gallons"
             },
             "argentina": {
               "population": "14234",
               "GDP": "08",
               "measureInVolume": "litres"
             }
           }
          ]
        }

现在,如何在python中基于条件检查国家是否为“美国”的基础上,向国家“美国”添加另一个字典值“犯罪率”?你知道吗

我正试图用下面的方式来创建它,但未能成功。你知道吗

            import json

            data = {}
            data['Country'] = []
            counter = 1
            for cnt in range(0, 50):
                data['Country'].append({
                    "<<dynamic Country name from a different function>>": {
                        "population": "23234234",
                        "GDP": "12",
                        "measureInVolume": "gallons"
                    },

                })
                counter = counter + 1
            with open('countryList_gen.json', 'w') as outfile:
                json.dump(data, outfile, indent=4)

请求帮助解决这个问题。因为只要我输入if条件,pycharm上的python编译器就会显示错误。你知道吗

谢谢 沙希德


Tags: 数据jsondatacounter国家条件countryoutfile
1条回答
网友
1楼 · 发布于 2024-06-29 01:08:24

如果我理解你的问题,对我来说,这看起来有点像你不需要创建一个名单以外的国家:

如果你是这样开始的:

data = {"Country": {}}
counter = 1

for cnt in range(0, 10):
    new_dic_name = "test" + str(counter) 
    data['Country'].update({new_dic_name : {
    "population": "data",
    "GDP": "data",
    "measureInVolume": "gallons"
     }})
     counter = counter + 1 

将为您提供以下数据输出:

{
"Country": {
    "test1": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test2": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test3": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test4": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test5": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test6": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    }
}
}

然后您可以执行以下操作:

for cnt in data["Country"]
if cnt == "test2": #you could implement your if clause here
    print("check")
    data['Country'][cnt]["population"] = "update"
    data['Country'][cnt]["GDP"] = "update"
    data['Country'][cnt]["measureInVolume"] = "update"

得到以下结果:

{
"Country": {
    "test1": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test2": {
        "population": "update",
        "GDP": "update",
        "measureInVolume": "update"
    },
    "test3": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test4": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test5": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    },
    "test6": {
        "population": "data",
        "GDP": "data",
        "measureInVolume": "gallons"
    }
}

}

我希望这有帮助。你知道吗

相关问题 更多 >