プログラミング学習日記

プログラミング学習時のメモ帳。

天気予報APIのOpenWeatherMap を Python で使ってみる

間違っている場所あったら優しく教えてね

無料APIPythonで使い天気予報を取得する

今回APIを使って取得するのは初めてなので記しておく.

簡単に説明

今回使うOpenWeatherMapは1分間に60回しか叩けない(十分すぎる)が無料で使うことができます.

OpenWeatherMap こちらのサイトの右上にあるSign Upから登録をします.

  • username
  • email
  • password

の三点で簡単に登録ができます.


コードは以下のようになります.(ほぼパクり)

f:id:topaz1-3:20190328001151p:plain
weather.py

コード解説

API_KEYは自分のAPIを入力,apiの変数はapiを取得するためのurlなのでそのまま使ってください

api = "http://api.openweathermap.org/data/2.5/weather?q={city}&APPID={key}"

次の city_name の行です. 最初にimportした sys モジュールは, コマンド入力の際に引数を受け取ることができます.

 $ python3 wether.py Tokyo

このようにコマンドを打った際にsys.argvにコマンドの引数が配列として加えられます. sys.argv[0]は, wether.py 自体を表しているのでTokyoの添字は1になります.

f:id:topaz1-3:20190328085608p:plain
test.py

$ python test.py tokyo oosaka
test.py
tokyo
oosaka

url = api.format( city=city_name , key=API_key ) 

string型のapiに対して引数にstrを代入する操作を行なっています. 最初にapiを定義するときに{city},{key}と変数を入れ込む場所をあらかじめ決めておき, 後からformat()を用いて代入している. どこに何を入れるかを指定しているため引数の順序は変えても構わない. つまりこれでも問題はない

url = api.format( key=API_key , city=city_name ) 

このurl に飛ぶと以下のようなデータが手に入る

f:id:topaz1-3:20190328094710p:plain
urlリンク先
このデータをjson形式に変換してアクセスするようにしています. 例えばClearを抜き出したいときには

weather = data["weather"][0]["main"]
print( weather )

このようにすると Clearが出力されます.

感想

APIを叩くって聞いてなかなかピンと来ていなかったけど実際にデータを取得してみると意外とあっけなくできてしまったなぁという印象でした. 他のAPIにも触ってみたです.

参考

OpenWeatherMap APIをPythonで叩いてパースするメモ - 渋谷ほととぎす通信

ブログを見ていただきありがとうございました