めも

2年生

webAPIで天気予報

pythonの勉強を全くしてなかったので復習しました。
「確かな力が身につくPython「超」入門」という本で勉強してます。
蛇使いのおじさんと壺から顔出すヘビのイラストが特徴のインドなかわいい本です。
プログラミング初心者向けって感じでさくさく進めます。

この本を読んだらwebAPIを用いた天気予報ができるようになりました。

import requests
import pprint

api_url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130040'
weather_date = requests.get(api_url).json()

print(weather_date['title'])
for forecasts in weather_date['forecasts']:
    print(forecasts['dateLabel'] + 'の天気は、' + forecasts['telop'])

結果はこんな感じ

東京都 父島 の天気
今日の天気は、曇り
明日の天気は、曇時々晴
明後日の天気は、曇時々晴

livedoorが提供するお天気予報APIを利用して天気予報を取得してます。(↓詳しくはここで!)
weather.livedoor.com

ばーっとコードの説明します~~~
4行目のapi_urlに天気予報情報をリクエストするURLを入れます。cityの後の6桁の数字が対象の地域を表すIDです。今回は父島のIDをいれました。
そして1行目でimportしたrequestモジュールのgetメソッドでapi_urlにアクセスし、その結果をjson型に変換してweather_dateにいれます。
weather_dateには3日分の天気予報情報が辞書型のオブジェクトとして配列で格納されてます。
あとはfor文で配列の中身を取り出して各天気予報情報を表示して終わり!

APIで検索すると他にもいろいろなAPIがあって面白いです。(↓いっぱいまとめられてます。)
smsurf.app-rox.com
上記のコードは教本のほぼコピペなので、次は自分で面白いと思ったAPIを見つけて利用してみたいです!