gpt4 book ai didi

python - Weather Underground API 在 Python 中获取历史数据

转载 作者:行者123 更新时间:2023-11-28 16:41:57 26 4
gpt4 key购买 nike

我正在尝试从 Weather Underground API 中提取历史数据。我改编了他们的 Python 示例代码(见下文)。当我运行它时,我得到一个异常“TypeError: list indices must be integers, not str” JSON 流包括一堆带有每日摘要信息 (Dailysummary) 的字段,但我无法获取它们在其中的任何值列表。

我将 URL 放入 JSON 查看器以查看结构,但无法弄清楚我做错了什么。任何帮助将不胜感激。

import urllib2
import json
f = urllib2.urlopen('http://api.wunderground.com/api/d08c4738fb303c66/geolookup/conditions/q/CA/San_Francisco.json')

json_string = f.read()
parsed_json = json.loads(json_string)
location = parsed_json['location']['city']
temp_f = parsed_json['current_observation']['temp_f']
print "Current temperature in %s is: %s" % (location, temp_f)
f.close()

h = urllib2.urlopen('http://api.wunderground.com/api/d08c4738fb303c66/history_19760508/q/CA/San_Francisco.json')
json_string = h.read()
parsed_json = json.loads(json_string)
date = parsed_json['history']['utcdate']['pretty']
print date

print type(parsed_json['history'])

snow = parsed_json['history']['dailysummary']['0']
print snow
h.close()

最佳答案

它在错误中说明了您的问题:您无法使用字符串索引列表:

>>> [1]['0']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> [1][0]
1
>>>

但是你在这里做:

snow = parsed_json['history']['dailysummary']['0']

要解决您的问题,请将索引设为整数:

snow = parsed_json['history']['dailysummary'][0]

关于python - Weather Underground API 在 Python 中获取历史数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com