OpenWeatherMapは世界中の天気情報を取得できる海外のオンラインサービスです。指定した場所の天気や気温、湿度、気圧などを取得できます。
無料版と有料版がありますが、無料版でも現在の天気などが取得できるので、これを試していきます。
http://OpenWeatherMap.org
OpenWeatherMapのWeb APIを利用するには、次の手順が必要です。
➀アカウントを作成する
➁APIキーを取得する
➂APIを利用する
右上のsign inをクリックします。アカウントを作成する画面になるので必要事項を入力します。アカウントを作成するとAPIキーが取得できます。
Keyから取得したAPIキーが確認できます。
pricingをクリックします。無料版で使えるサービスが確認できます。current weatherをクリックしてみましょう。
API callが確認できます。こちらを利用していきます。
api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}
api.openweathermap.org/data/2.5/weather?q={city name},{state code}&appid={API key}
api.openweathermap.org/data/2.5/weather?q={city name},{state code},{country code}&appid={API key}
都市名で指定して天気情報を取得する
{city}を都市名に、{API key}を取得したAPIキーに置き換えてデータをリクエストしていきます。
置き換えるその時、Pythonではformat文を使うのが便利です。
ちょっと練習をしてみましょう。
うまく置き換えられましたね。
では、この要領で都市名から天気情報を取得してみましょう。
解説
import requests | インターネットにアクセスするためのrequestsをimportします。 |
import json | JSONを扱えるようにする標準ライブラリのjsonをimportします。 |
url = “http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric” | 海外サイトなので、日本語表示にするためlang=ja、気温の単位も摂氏にするためunits=metricを追記しました。http://を追記しAPI callを貼り付けます。変数urlとし代入します。 |
url = url.format(city=”Tokyo”,key=”取得したAPIキー”) | format文を使い、置き換えます。 |
jsondata = requests.get(url).json() | getした値に.json()と命令して取り出します。 |
print(jsondata) | 取得したデータを表示します。 |
しっかり日本語で東京都となっています。また、temp_maxやtemp_minも摂氏になっています。
*尚、ここではバージョン「Python 3.10.1」を使用しています。
この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。