渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

OpenWeatherMap APIをPythonで叩いてパースするメモ


前回記事からの続きです。
最低限の機械学習の知識を手に入れるため勉強中。

今回は本書のWeb APIからのデータ取得部分をやっています。

一見とても簡単なコードでしたが、Python初心者な私にとっては、とても有益でした。 JSONや、C#でいうところのstring.Format()的な文字の置き換えなどもPythonには用意されていることを知ることが出来ました。

タイトルにもあるように、OpenWeatherMapというサイトのAPIを使って指定都市の天気情報を取得します。
予めOpenWeatherMapの無料会員登録をしてAPIキーを取得する必要があります。

会員登録後のAPIキーの取得方法はコチラにまとまっています。

How to start - OpenWeatherMap

今回のサンプルコードはコチラです。

python openweathermap.py Tokyo

このように引数にTokyoを指定すると、

{
    "coord": {
        "lon": 139.69,
        "lat": 35.69
    },
    "weather": [
        {
            "id": 520,
            "main": "Rain",
            "description": "light intensity shower rain",
            "icon": "09n"
        },
        {
            "id": 701,
            "main": "Mist",
            "description": "mist",
            "icon": "50n"
        }
    ],
    "base": "stations",
    "main": {
        "temp": 285.64,
        "pressure": 1016,
        "humidity": 93,
        "temp_min": 283.15,
        "temp_max": 288.15
    },
    "visibility": 4000,
    "wind": {
        "speed": 3.6,
        "deg": 90
    },
    "clouds": {
        "all": 75
    },
    "dt": 1510592400,
    "sys": {
        "type": 1,
        "id": 7619,
        "message": 0.0086,
        "country": "JP",
        "sunrise": 1510521327,
        "sunset": 1510558518
    },
    "id": 1850147,
    "name": "Tokyo",
    "cod": 200
}

このようなJSONが返ってきます。

data["weather"][0]["main"]

天気を取得する場合は、JSONをこのように配列参照して取得します。 ちなみに現在雨がふっているようでRainと返却されます。

最後に

本書は少しずつ継続的に読み進めています。

環境

  • Python 3.6.3
  • Requests 2.18.4