foresta profonda

眠くない日はない。

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に天気を投稿するのも簡単にできる。