OpenWeatherMapでAPI入門
今回はAPIを提供しているWeather API – OpenWeatherMapというサイトからお天気を取得するプログラムでAPI入門したいと思います。ただ、はじめるにあたっての下準備と必要となる知識が若干多いです。
OpenWeatherMapのAPI入門で必要となる知識
- pythonのモジュール(requests, sys)
- JSONデータの構造
- openweathermapのAPIを使うには会員登録が必要
プログラミング言語はpythonを使用します。
プログラミングをはじめたばかりのころはJSONという聞きなれない単語がでてきますが、JSON(JavaScript Object Notation)は、データを構造化して表現するための軽量なデータフォーマットです。主にWebアプリケーションやAPIでデータのやり取りに使われます。以下は、JSONデータの基本的な構造を示す例です↓
{
"name": "John Doe",
"age": 30,
"is_student": false,
"hobbies": ["reading", "playing guitar", "cooking"]
}
ようするにどういうことかというとAPIにリクエストを送って返ってくるデータ(レスポンス)が上記のようなデータ構造になっているということです。JSONとは上記のような構造だと理解してください。ただ実際のJSONデータ量や階層はもっと多いので注意してください。
OpenWeatherMapから天気情報を取得するにはAPIを使用する
まえがきとしてAPIを扱うときは、必ずAPIを提供しているサイトの「ドキュメント」を見ることをおすすめします。
APIのリクエストURL
#これはプログラムの一部ですので動きません。 APPID='ここにAPIのキーが入ります' assert APPID != '', 'APPIDを定義してください。' # OpenWeatherMap.orgのAPIからJSONデータをダウンロードする url ='http://api.openweathermap.org/data/2.5/forecast?q={}&appid={}'.format(location, APPID)
2行目と6行目を見てください。2行目でAPIキーを変数に代入して、6行目の最後でAPIキーをurlに追加しています。.format()関数の役割は、引数の部分が { ここにはいります。}
わかりにくいかもしれませんが、APPIDとlocationが合体されたものがAPIのリクエストURLになります。つまり「APIを使う」ということはAPIのリクエストURLにアクセスしてレスポンスを得るということです。
実際にOpenWeatherMapAPIで天気情報を取得する
#JSON形式データpprintで表示 import json, requests, pprint APPID = ''#APIキーの定義 url ='http://api.openweathermap.org/data/2.5/forecast?q={}&appid={}'.format('Japan, JP', APPID) #api.openweathermap.org/data/2.5/forecast?q= {都市名}、{国コード}5日バージョン response = requests.get(url) response.raise_for_status() weather_data = json.loads(response.text) print(type(weather_data)) pprint.pprint(weather_data)
requestsモジュールを使ってAPIのリクエストURLにアクセスしてレスポンスを取得します。
json.loads()
はPythonの標準ライブラリであるjson
モジュールに含まれるメソッドで、JSON形式の文字列をPythonのデータ構造に変換するために使用されます。
これでOpenWeatherMapのAPIを使って天気情報を取得できましたので終わりにします。
コメント