我使用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"]
但是上面的语法会引发错误。我在这里错过了什么?
答案 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"]