天気予報APIのOpenWeatherMap を Python で使ってみる
間違っている場所あったら優しく教えてね
無料APIをPythonで使い天気予報を取得する
今回APIを使って取得するのは初めてなので記しておく.
簡単に説明
今回使うOpenWeatherMapは1分間に60回しか叩けない(十分すぎる)が無料で使うことができます.
OpenWeatherMap こちらのサイトの右上にあるSign Upから登録をします.
- username
- password
の三点で簡単に登録ができます.
コードは以下のようになります.(ほぼパクり)
コード解説
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になります.
$ 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 に飛ぶと以下のようなデータが手に入る このデータをjson形式に変換してアクセスするようにしています. 例えばClearを抜き出したいときには
weather = data["weather"][0]["main"] print( weather )
このようにすると Clearが出力されます.
感想
APIを叩くって聞いてなかなかピンと来ていなかったけど実際にデータを取得してみると意外とあっけなくできてしまったなぁという印象でした. 他のAPIにも触ってみたです.