気象庁の天気予報APIをPythonを使って東京都の7日先までの天気予報を取得してみました。
まずは、下記のページを参考に全国の天気予報取得に挑戦してみました。
なお、開発環境はThonnyを使いました。
書いてある通りに行えば難なく取得が出来ました。
なお、上記のリンク先に記載があるのですが、気象庁の方が下記のようにTwitterに投稿しており、予告なく仕様が変わる可能性があるかもしれません。
[Twitterの内容]
仕様の継続性や運用状況のお知らせを気象庁はお約束していないという意味で、APIではないと申し上げざるを得ないのですが、一方で政府標準利用規約に準拠してご利用いただけます。
ただ、気象庁の情報ということで安心感があるので今回は引き続き使用していきたいと思います。
また、実用的にとなると各都道府県別に見たいところなので、取得方法を模索していると、
download.pyのURLのところを各都道府県別に書き換えることで取得ができるとの情報を発見しました。
download.py

変更後のURL
https://www.jma.go.jp/bosai/forecast/data/forecast/XXXXXX.json
東京都は、XXXXXXのところが130000となります。
ここから先の作業はjsonファイルを読めないと作業できないので、上記のURLのページ(Pythonを使った気象庁の天気予報APIの取得についての参考ページ)を参考にchromeの拡張機能のJSON Viewerをインストールしてjsonファイルを読めるようにしました。
JSON Viewerをインストールをしたら、拡張機能の一覧を示すページ(?)のJSON Viewerの拡張機能を管理をクリックします。

管理ページへ移動したら、ファイルのURLへのアクセスを許可するをONにします。

以上の作業を終えて下記のリンクにアクセスすると、下記のように表示ができます。

次に、2日後までは天気の記載があるのですが、3日後~7日後はweatherCodeのみしか記載がないので、天気予報は辞書を使ってコード→天気に変換を行いました。
(なお、辞書内は自由に改行できるそうです。)

あとは、今日と明日の最高気温・最低気温と降水確率のデータの個数が時間によって変わってくるようなので、対応できるようにプログラムを作成しました。


3日後以降は繰り返しで問題なさそうなのでfor文を使って作成しました。
(2日後はreliabilitiesが空になるので、今回は分けて書きました。)

以上を踏まえて作成したプログラムをが下記になります。
download.pyとread_weather.pyを一度に実行するような形にしました。
なお、プログラムについては素人なのでやさしい目で見ていただけるとありがいたいです。

実行結果は下記の通りです。

今後は定期実行やラズパイを使って表示する方法を考えていきたいと思います。
参考にしたページ
・気象庁の東京都の天気
・Pythonを使った気象庁の天気予報APIの取得について
・予報区の情報取得について
・weatherCodeについて
ความคิดเห็น