Итак, я работаю с Darksky API для хранения исторических данных о погоде в кадре данных.Тем не менее, я получаю KeyError при попытке загрузить фрейм данных с данными.
Как я делаю это, используя цикл для , который выполняется каждый час и собирает все почасовые данные.Поэтому, когда вы запрашиваете API, вы получаете вывод, подобный этому:
Выходные данные
погода ['почасовая']
{'summary': 'Облачно с утра.', 'icon': 'переменная облачность', данные ': [{
- ' time ': 1528354800,
- 'summary': 'Небольшая облачность',
- 'icon': 'переменная облачность-ночь',
- 'deposIntensity': 0,
- 'Возможность выделения: 0,
- 'температура': 12,94,
- 'кажущаяся температура': 12,94,
- 'точка росы': 9,36,
- 'влажность': 0,79,
- «давление»: 1011,4,
- «WindSpeed»: 2,2,
- «WindGust»: 2,69,
- «WindBearing»: 252,
- 'cloudCover': 0,33,
- 'uvIndex': 0,
- 'visibility': 13.81}]}
Эти данныебудет отображаться для каждого часа для данного дня или диапазона дней, если вы его зациклили.Итак, сначала я создал свой фрейм данных следующим образом:
Создание фрейма данных
daily_weather = pd.DataFrame (
- {'time': [],
- 'realtime': [],
- 'summary': [],
- 'icon': [],
- 'deposIntensity': [],
- «осадка»: [],
- «температура»: [],
- «кажущаяся температура»: [],
- 'dewPoint ': [],
- ' влажность ': [],
- ' давление ': [],
- ' windSpeed ': [],
- 'windGust': [],
- 'windBearing': [],
- 'cloudCover': [],
- 'uvIndex': [],
- 'visibility': []})
Затем я использую цикл для вызова 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)
Если я включу только первые несколько параметров, код работает, но явыдает ошибку при использовании всего:
KeyError
Мне бы очень понравилось, пожалуйста.Я в тупике.