プログラミング原人の進化ログ

プログラミング原人の進化論

オレ プログラミング ベンキョウ スル。マナンダ コト カク。

pythonでOpenWeatherMapのweatherAPIを叩く

環境

Mac OS X 10.14.5 python 3.7.1

OpenWeatherMapに登録

ここにアクセスして"Weather APIs for developers"の下の"Try free APIs"ボタンを押下します。
すると次のようなページが表示されるので、

f:id:programgenjin:20190709135103p:plain

sign up から必要な情報を入力して"create account"ボタンを押下します。

API keys からKEYを確認します。

f:id:programgenjin:20190709140147p:plain

このKEYはあとで使います。

使ってみる

京都の現在の気象情報をJSON形式で取得。

import requests
import json

city = "Kyoto"
KEY = "xxxxx"  # 先ほど確認したKEYを指定
api = "http://api.openweathermap.org/data/2.5/weather?units=metric&q={city}&APPID={key}"
url = api.format(city=city, key=KEY)
response = requests.get(url)
data = response.json()  # dataをJSONで取得
print(json.dumps(data, indent=4))  # JSONを整形

実行結果

{
    "coord": {
        "lon": 135.76,
        "lat": 35.02
    },
    "weather": [
        {
            "id": 803,
            "main": "Clouds",
            "description": "broken clouds",
            "icon": "04d"
        }
    ],
    "base": "stations",
    "main": {
        "temp": 24.78,
        "pressure": 1006,
        "humidity": 78,
        "temp_min": 24,
        "temp_max": 25.56
    },
    "visibility": 10000,
    "wind": {
        "speed": 2.1,
        "deg": 90
    },
    "clouds": {
        "all": 75
    },
    "dt": 1562891024,
    "sys": {
        "type": 1,
        "id": 8032,
        "message": 0.0088,
        "country": "JP",
        "sunrise": 1562874703,
        "sunset": 1562926370
    },
    "timezone": 32400,
    "id": 1857910,
    "name": "Kyoto",
    "cod": 200
}

国を含めて指定する場合はTokyo, Japanのようにします。他にも色々な指定方法があるようです。

まとめ

思ったよりも簡単にできました。天気予報のアプリを作るときにでも役立ちそう。

参考

pythonを使ってOpenWeatherMapから天気情報を取得 - Qiita