我从 URL 获取天气信息。
weather = urllib2.urlopen('url')
wjson = weather.read()
我得到的是:
{
"data": {
"current_condition": [{
"cloudcover": "0",
"humidity": "54",
"observation_time": "08:49 AM",
"precipMM": "0.0",
"pressure": "1025",
"temp_C": "10",
"temp_F": "50",
"visibility": "10",
"weatherCode": "113",
"weatherDesc": [{
"value": "Sunny"
}],
"weatherIconUrl": [{
"value": "http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}],
"winddir16Point": "E",
"winddirDegree": "100",
"windspeedKmph": "22",
"windspeedMiles": "14"
}]
}
}
如何访问我想要的任何元素?
如果我这样做: print wjson['data']['current_condition']['temp_C']
我收到错误消息:
字符串索引必须是整数,而不是 str。
原文由 doniyor 发布,翻译遵循 CC BY-SA 4.0 许可协议
你从 url 得到的是一个 json 字符串。而且你不能直接用索引解析它。您应该通过
json.loads
将其转换为字典,然后您可以使用 index.html 解析它。与其使用
.read()
将其临时保存到内存然后将其读取到json
,而是允许json
直接从文件中加载它: