Pythonで天気情報を取得する
最近、シェルスクリプトで作業効率化するのがマイブーム。
そんな折、Pythonでシェルスクリプトよりもリッチ(?)なツールを作りたい願望が高まってきたので、本格的に勉強しようと思い立った。事始めとしてPythonで天気情報を取得するプログラムを書いてみた。
今回はlivedoorのWeather Hacks(気象データ配信サービス)から天気情報を取得する。
weather.livedoor.com
リクエストには地域を指定するだけで良い。
以下は神戸市の天気情報を取得する場合のリクエスト。
http://weather.livedoor.com/forecast/webservice/json/v1?city=280010
レスポンスはJSONデータで得られるので、目的のプロパティについて処理すれば良い。
forecastsプロパティには直近3日間の天気情報が含まれる。
というわけで、直近3日間の天気内容(晴れ、曇り、雨など)を表示するプログラムを書くと以下のようになった。
#!/usr/bin/env python # coding: utf-8 import requests import json def get_weather(): url = 'http://weather.livedoor.com/forecast/webservice/json/v1' payload = {'city': '280010'} # Kobe data = requests.get(url, params = payload).json() print(data['title']) for weather in data['forecasts']: print(weather['dateLabel'] + ':' + weather['telop']) return if __name__ == '__main__': get_weather()
実行すると以下のようになる。
兵庫県 神戸 の天気 今日:曇り 明日:雨 明後日:雨のち晴
至極簡単。
これなら、ラズパイで毎朝SlackとかTwitterに天気を投稿するのも簡単にできる。