使用python多次遍历/循环遍历json文件

时间:2020-10-28 15:41:13

标签: python json

有一个json文件,

{
    "IGCSE":[
        {
            "rolename": "igcsesubject1",
            "roleid": 764106550863462431
        },
        {
            "rolename": "igcsesubject2",
            "roleid": 764106550863462431
        }
    ],
    "AS":[
        {
            "rolename": "assubject1",
            "roleid": 854789476987546
        },
        {
            "rolename": "assubject2",
            "roleid": 854789476987546
        }
    ],
    "A2":[
        {
            "rolename": "a2subject1",
            "roleid": 854789476987856
            
        },
        {
            "rolename": "a2subject2",
            "roleid": 854789476987856
        }
    ]

}

我想获取键[igcse,as,a2 ..],然后获取特定键下的角色名称和角色ID。我该怎么做? 以下是我以前没有按键时如何使用它的python代码。

with open(fileloc) as f:
    data = json.load(f)
    for s in range(len(data)):
        d1 = data[s]
        rname = d1["rolename"]
        rid = d1["roleid"]


任何帮助将不胜感激:)

3 个答案:

答案 0 :(得分:0)

首先,您可以拥有一个密钥列表,在这些列表中,您将获得它们:

l = ['A1','A2']

然后像这样迭代:

for x in data:
  if x in l:
    for y in range(len(data[x])):
      print(j[x][y]['rolename'])
      print(j[x][y]['roleid'])

答案 1 :(得分:0)

您可以使用它来获得密钥:

with open(fileloc) as f:
data = json.load(f)
for s in data:
    d1 = data[s]
    rname = d1["rolename"]
    rid = d1["roleid"]

答案 2 :(得分:0)

以下内容将满足您的需求:

with open(file) as f:
    json_dict = json.load(f)
    for key in json_dict:
        value_list = json_dict[key]
        for item in value_list:
            rname = item["rolename"]
            rid = item["roleid"]

如果您需要过滤JSON中的特定键,则可以获取要获取的键列表,并在遍历这些键时对这些键进行过滤(类似于上述Wasif Hasan的建议)。