WebAPI利用時のkeyエラー(JSONで取得・表示時)

前提

プログラミング初学者で、現在WebAPIの基本について学んでいます。
API(OpenWeatherMap)を利用して、JSONで天気データ取得・日時表示の修正を行う
基本的なコードを作っています。

取得したJSONのデータからkeyを指定して、データを取り出し出力することを
目標としています。

発生している問題・エラーメッセージ

取得したJSONデータの中からkeyを指定して、ほしいデータだけを出力させようとしているのですが「key error」となってしまいます。

<ipython-input-28-a6afd89a8bbb> in <module> 16 17 ---> 18 for dat in jsondata['list']: 19 jst = str(datetime.fromtimestamp(dat["dt"], tz))[:-9] 20 weather = dat["weather"][0]["descriprion"] KeyError: 'list'

該当のソースコード

Python

import requests import json from datetime import datetime, timedelta, timezone #5日間(3時間ごと)の天気を取得する:東京url = "http://api.openweathermap.org/data/2.5/forecast?q={cityname}&appid={key}&lang=ja&units=metric"uel = url.format(cityname="Tokyo, JP", key="自分のAPIキー") #JSONデータ取得、tzの設定jsondata = requests.get(url).json()tz = timezone(timedelta(hours=+9), 'JST') #データの抽出・日時の変換for dat in jsondata['list']: jst = str(datetime.fromtimestamp(dat["dt"], tz))[:-9] weather = dat["weather"][0]["descriprion"] temp = dat["main"]["temp"] print("日時:{jst}, 天気:{w}, 気温:{t}度".format(jst=jst, w=weather, t=temp))

試したこと

keyの存在確認を以下の二種類で試みました。
①APIから取得した全データを出力してkeyを確認
②コードによるキー存在確認

<以下それぞれの詳細>
①のコード
(ネットで取得データを公開していいのか分からなかったので、ひとまず結果の記載を控えましたが、以下のコードで出力した結果、確かにキー「list」は存在していました)

import requests import json from pprint import pprint #5日間(3時間ごと)の天気を取得する:東京 url = "http://api.openweathermap.org/data/2.5/forecast?q={cityname}&appid={key}&lang=ja&units=metric" url = url.format(cityname="Tokyo, JP", key="自分のAPIキー") jsondata = requests.get(url).json() pprint(jsondata)

②のコードと結果
(該当ソースコードの、[#データの抽出・日時の変換」以下のコードを削除・下記コードを追加して実行)

print(jsondata['list'])
KeyError: 'list'

補足情報

実行環境はGoogleColaboratoryです。

コメントを投稿

0 コメント