因此,我正在使用Darksky将历史天气数据存储到数据中。但是,当我试图用数据加载数据时,我会得到一个KeyError。
我是如何做到这一点的,它使用的是一个for循环,它每小时运行一次,收集所有每小时的数据。因此,当您查询API时,会得到如下输出:
输出数据
天气“每小时”
{“摘要”:“早上开始多云。”,“图标”:“部分多云-天”,数据“:[{ {
此数据将显示给定一天的每个小时,或者循环显示的天数范围。所以首先我创建了我的数据,如下所示:
Dataframe创建
daily_weather = pd.DataFrame(
然后,我使用一个循环来调用API,并在一段时间内加载数据以填充数据:
填充DataFrame:
日(1,30):
dt = datetime(2018, 6, day).isoformat()
weather = forecast('d783b2b300466c9bd421eb89ebbd2eca', *VICTORIA, time = dt)
weather.refresh(units='si')
for hour in weather['hourly']['data']:
daily_weather = daily_weather.append(
{'time': hour['time'],
'realtime': datetime.fromtimestamp(hour['time']),
'summary': hour['summary'],
'icon': hour['icon'],
'precipIntensity': hour['precipIntensity'],
'precipProbability': hour['precipProbability'],
'temperature': hour['temperature'],
'apparentTemperature': hour['apparentTemperature'],
'dewPoint': hour['dewPoint'],
'humidity': hour['humidity'],
'pressure': hour['pressure'],
'windSpeed': hour['windSpeed'],
'windGust': hour['windGust'],
'windBearing': hour['windBearing'],
'cloudCover': hour['cloudCover'],
'uvIndex': hour['uvIndex'],
'visibility': hour['visibility'],
}, ignore_index=True)
如果我只包含前几个参数,代码就能工作,但是在使用所有内容时都会出现错误:
我想要任何方向。我很困惑。
发布于 2019-06-23 07:26:02
看看他们的文件,它说precipIntensity
和许多其他值一样是可选的。若要防止发生类似的错误,请使用hour.get('precipIntensity, 0)
默认为0,但如果需要,也可以默认为None
。
https://stackoverflow.com/questions/56720853
复制相似问题