使用for循环从JSON数据访问特定的键/值对

时间:2018-11-30 02:40:16

标签: python json

我正在尝试从JSON数据中的两个特定项中提取键/值对

数据如下:

[{"voc": "UAT",
"concepts":[{"prefLabel":"Solar system",
    "uri":"http://astrothesaurus.org/uat/1528", "score":"15" },
    {"prefLabel":"X-ray astronomy",
    "uri":"http://astrothesaurus.org/uat/1810", "score":"9" },
    {"prefLabel":"Gamma-ray astronomy",
    "uri":"http://astrothesaurus.org/uat/628", "score":"9" }
]}]

我只尝试使用for循环来检索prefLabel并评分,这会将它们保存到元组中,以后再附加到我当前为空的数据列表中。

这是我当前的循环,但返回“错误类型”错误:

for concepts in voc_list:
    for prefLabel, score in concepts.items():
        data_tuple = (prefLabel, score)
        data.append(data_tuple)`

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以搜索词典列表,并在data与所需字符串匹配时追加到key列表中。

for d in voc_list[0]['concepts']:
    for k, v in d.items():
        if k == 'prefLabel':
            data.append((k, v))