使用Python通过Json文件中的键显示特定值

时间:2018-03-19 09:34:38

标签: python json

我使用python从网站获取json响应,json文件如下:

{

"term":"albany",
"moresuggestions":490,
"autoSuggestInstance":null,
"suggestions":[
    {
        "group":"CITY_GROUP",
        "entities":[
            {
                "geoId":"1000000000000000355",
                "destinationId":"1508137",
                "landmarkCityDestinationId":null,
                "type":"CITY",
                "caption":"<span class='highlighted'>Albany</span>, Albany County, United States of America",
                "redirectPage":"DEFAULT_PAGE",
                "latitude":42.650249,
                "longitude":-73.753578,
                "name":"Albany"
            },
            {},
            {},
            {},
            {},
            {}
        ]
    },
    {},
    {},
    {}
]

}   

我使用以下脚本根据键显示值:

import json
a =['']
data = json.loads(a)
print data["suggestions"]

这会显示json文件中“建议”下的所有内容,但是如果我想再降低一两级,则会抛出错误。例如。我想显示“标题”的值,我搜索了解决方案,但找不到我需要的东西。我甚至尝试过调用:

print data["suggestions"]["entities"]

但是上面的语法会引发错误。我在这里错过了什么?

4 个答案:

答案 0 :(得分:1)

data["suggestions"]是一个词典列表。您需要提供索引(即data["suggestions"][0]["entities"])或使用循环:

for suggestion in data["suggestions"]:
    print suggestion["entities"]

请注意,"entities"也是一个列表,因此同样适用:

for suggestion in data["suggestions"]:
    for entity in suggestion["entities"]:
        print entity["caption"]

答案 1 :(得分:1)

如果你看到建议中的数据是一个数组,那么你应该如下所示:

print data["suggestions"][0]["entities"]

答案 2 :(得分:0)

&#34;建议&#34; key包含一系列dicts。

如果字典的位置保持不变,您可以像这样访问它。 data["suggestions"][0]["entities"][0]["caption"]

答案 3 :(得分:0)

print data["suggestions"][0]["entities"][0]["caption"]