【发布时间】:2017-05-28 19:16:30
【问题描述】:
我对 API 非常陌生,我正在尝试制作一个 Python 脚本来告诉我我所在城市的白天高峰。我的 API 设置得很好,它输出的数据是这样的:
{
"SiteRep":{
"Wx":{
"Param":[
{
"name":"FDm",
"units":"C",
"$":"Feels Like Day
Maximum Temperature"
},
{
"name":"FNm",
"units":"C",
"$":"Feels Like Night Minimum Temperature"
},
{
"name":"Dm",
"units":"C",
"$":"Day Maximum Temperature"
},
{
"name":"Nm",
"units":"C",
"$":"Night Minimum Temperature"
},
{
"name":"Gn",
"units":"mph",
"$":"Wind Gust Noon"
},
{
"name":"Gm",
"units":"mph",
"$":"Wind Gust Midnight"
},
{
"name":"Hn",
"units":"%",
"$":"Screen Relative Humidity Noon"
},
{
"name":"Hm",
"units":"%",
"$":"Screen Relative Humidity Midnight"
},
{
"name":"V",
"units":"",
"$":"Visibility"
},
{
"name":"D",
"units":"compass",
"$":"Wind Direction"
},
{
"name":"S",
"units":"mph",
"$":"Wind Speed"
},
{
"name":"U",
"units":"",
"$":"Max UV Index"
},
{
"name":"W",
"units":"",
"$":"Weather Type"
},
{
"name":"PPd",
"units":"%",
"$":"Precipitation Probability Day"
},
{
"name":"PPn",
"units":"%",
"$":"Precipitation Probability Night"
}
]
},
"DV":{
"dataDate":"2017-05-28T17:00:00Z",
"type":"Forecast",
"Location":{
"i":"350896",
"lat":"50.8371",
"lon":"-0.7734",
"name":"LONDON",
"country":"ENGLAND",
"continent":"EUROPE",
"elevation":"14.0",
"Period":[
{
"type":"Day",
"value":"2017-05-28Z",
"Rep":[
{
"D":"SE",
"Gn":"9",
"Hn":"66",
"PPd":"51",
"S":"7",
"V":"GO",
"Dm":"22",
"FDm":"20",
"W":"7",
"U":"6",
"$":"Day"
},
{
"D":"ENE",
"Gm":"20",
"Hm":"85",
"PPn":"42",
"S":"9",
"V":"VG",
"Nm":"16",
"FNm":"15",
"W":"12",
"$":"Night"
}
]
},
{
"type":"Day",
"value":"2017-05-29Z",
"Rep":[
{
"D":"SW",
"Gn":"13",
"Hn":"91",
"PPd": "59",
"S":"9",
"V":"GO",
"Dm":"18",
"FDm":"16",
"W":"12",
"U":"5",
"$":"Day"
},
{
"D":"W",
"Gm":"13",
"Hm":"93",
"PPn":"7",
"S":"7",
"V":"GO",
"Nm":"13",
"FNm":"12",
"W":"7",
"$":"Night"
}
]
},
{
"type":"Day",
"value":"2017-05-30Z",
"Rep":[
{
"D":"WSW",
"Gn":"25",
"Hn":"75",
"PPd":"9",
"S":"13",
"V":"VG",
"Dm":"18",
"FDm":"15",
"W":"7",
"U":"5",
"$":"Day"
},
{
"D":"WNW",
"Gm":"13",
"Hm":"89",
"PPn":"5",
"S":"9",
"V":"VG",
"Nm":"11",
"FNm":"10",
"W":"0",
"$":"Night"
}
]
},
{
"type":"Day",
"value":"2017-05-31Z",
"Rep":[
{
"D":"SW",
"Gn":"13",
"Hn":"58",
"PPd":"3",
"S":"4",
"V":"VG",
"Dm":"19",
"FDm":"18",
"W":"1",
"U":"7",
"$":"Day"
},
{
"D":"NE",
"Gm":"9",
"Hm":"87",
"PPn":"2",
"S":"4",
"V":"VG",
"Nm":"10",
"FNm":"9",
"W":"0",
"$":"Night"
}
]
},
{
"type":"Day",
"value":"2017-06-01Z",
"Rep":[
{
"D":"ESE",
"Gn":"18",
"Hn":"56",
"PPd":"0",
"S":"9",
"V":"VG",
"Dm":"19",
"FDm":"18",
"W":"1",
"U":"8",
"$":"Day"
},
{
"D":"E",
"Gm":"13",
"Hm":"80",
"PPn":"1",
"S":"9",
"V":"VG",
"Nm":"11",
"FNm":"9",
"W":"0",
"$":"Night"
}
]
}
]
}
}
}
}
问题是我想打印出所有白天的高单位,这些是字典中的 Dm 键,但我无法将所有单独字典中的键对应的所有数据收集到一个列表中(或其他任何东西) .以任何数据类型收集它们的任何帮助都会非常有帮助。我的目标是打印出日期与它们对应的白天高点。
感谢您阅读(和帮助), API 的菜鸟
附:如果需要,这是我用来获取信息的脚本的副本,它使用 Met Office(这是英国的天气预报网站)API:
import urllib.request, json, codecs
url = 'Insert API here'
json_obj = urllib.request.urlopen(url)
reader = codecs.getreader("utf-8")
data = json.load(reader(json_obj))
print (data)
【问题讨论】:
标签: python python-3.x api dictionary weather