OpenWeatherのAPIを使ってみたい

今日は若干雨でした。天気予報がいつでも見れると良いんですけどね。
というわけで天気予報のAPIとして去年までlivedoorのWeather hackがありましたが、2020年7月にサービス終了してしまいました。

これからも同じようなことをするには別の天気予報APIを探す必要があります。

今回 [OpenWeatherMap]というサイトにて無料で天気のAPIを使えるとのことだったので、早速使ってみました。

こちらで無料会員登録をすると、APIKeyが発行されます。それを使えばOpenWeatherMap上のAPIを使えるようです。

また、今回こちらのページも参考にさせていただきました。


とりあえず表示させることができたコードはこちらです。

import requests
import json

city = "Tokyo"

API_KEY = "#ここに自分のコードを入れる"

url = 'http://api.openweathermap.org/data/2.5/weather?q=Tokyo&APPID=#自分のAPI_KEY'

response = requests.get(url)

data = response.json()

jsontext = json.dumps(data,indent=4)

print(jsontext)

出力はこちら

{
   "coord": {
       "lon": 139.6917,
       "lat": 35.6895
   },
   "weather": [
       {
           "id": 500,
           "main": "Rain",
           "description": "light rain",
           "icon": "10n"
       }
   ],
   "base": "stations",
   "main": {
       "temp": 287.64,
       "feels_like": 284.86,
       "temp_min": 287.04,
       "temp_max": 288.15,
       "pressure": 1015,
       "humidity": 82
   },
   "visibility": 10000,
   "wind": {
       "speed": 4.63,
       "deg": 170
   },
   "rain": {
       "1h": 0.23
   },
   "clouds": {
       "all": 75
   },
   "dt": 1616666220,
   "sys": {
       "type": 1,
       "id": 8074,
       "country": "JP",
       "sunrise": 1616618287,
       "sunset": 1616662579
   },
   "timezone": 32400,
   "id": 1850144,
   "name": "Tokyo",
   "cod": 200
}

上記は3/25日時点のものですが、後日同じコードを叩くと違う結果になります。

{
   "coord": {
       "lon": 139.6917,
       "lat": 35.6895
   },
   "weather": [
       {
           "id": 800,
           "main": "Clear",
           "description": "clear sky",
           "icon": "01d"
       }
   ],
   "base": "stations",
   "main": {
       "temp": 286.26,
       "feels_like": 284.93,
       "temp_min": 285.93,
       "temp_max": 287.04,
       "pressure": 1017,
       "humidity": 50
   },
   "visibility": 10000,
   "wind": {
       "speed": 3.6,
       "deg": 60
   },
   "clouds": {
       "all": 0
   },
   "dt": 1617697980,
   "sys": {
       "type": 1,
       "id": 8063,
       "country": "JP",
       "sunrise": 1617654057,
       "sunset": 1617699965
   },
   "timezone": 32400,
   "id": 1850144,
   "name": "Tokyo",
   "cod": 200
}

プロセスは終了コード 0 で完了しました

初心者の僕はあれこれ教えてもらいながらできました汗

weather main のところが、light rainになったり、clear になったりと、その日の天気を表していることがわかります。

それではこれにコードを足して、、とその前に、僕はまずPycharm CEにrequestsモジュールを足すところでつまづきました。

どんだけ最初だ!!と突っ込みたくなるところですが、一応メモとして残します。

1. Pycharm CEを開く→任意のプロジェクトを開く→環境設定→プロジェクト[プロジェクトの名前]→Python インタープリター を開く!

2. 右上の歯車マークをクリックし「追加」を選択

3. 「新しい環境」を選び、空のファイルを用意して、そこに新しい環境を作る。

これで新しく仮想環境を作ることができます。

次にモジュールを追加します。

1. 同じく設定→プロジェクト[プロジェクトの名前]→Python インタープリター を開く

2. 左下の「+」マークを押す

3. 任意のモジュール名を入れ、適したものをインストールすれば使えるようになる。

例えばrequestsなら、いろんな「〜requests〜」が出てくるが、素直に過不足なく「requests」と書いているものをインストールすると良いです。


それを知らなかったため最初ははまりました。

上記ができれば、あとは最初のコードを入れればAPIが使えます!!

次は、そのAPIを利用してIf文であれこれ表示させたいと思います。つづく

いいなと思ったら応援しよう!