【Python実践】無料APIで「自分専用の天気予報アプリ」を作ってみよう!

こんにちは、ショウです。

前回の記事では「プログラミング学習におけるAI活用術」についてお話ししました。AIを味方につければ、新しいライブラリや技術へのハードルはぐんと下がります。

そこで今回は、さらに一歩進んで**「WebAPIを使った具体的なアプリ開発」**に挑戦してみましょう。

プログラミング初心者が「何か動くものを作ってみたい」と思ったとき、一番おすすめなのがWebAPIの活用です。今回は、世界中の気象データを無料で取得できる「OpenWeatherMap」を使って、Pythonで自分専用の天気予報ツールを作ってみます。


1. なぜ「API」を触ると成長が早いのか?

API(Application Programming Interface)は、簡単に言うと**「外部の便利な機能を自分のプログラムに取り込むための窓口」**です。

  • ゼロから作らなくていい: 気象観測システムを自前で作るのは不可能ですが、APIを使えば数行のコードで最新データが手に入ります。
  • 実用性が高い: 実際に動くデータ(天気、株価、ニュースなど)を扱うことで、モチベーションが維持しやすい。
  • 「つなげる力」がつく: 現代の開発は、既存のサービス同士を連携させることが多いため、APIの扱いは必須スキルです。

2. 事前準備:OpenWeatherMapのAPIキーを取得する

まずは、データを提供してくれるサイトで「APIキー(利用許可証)」を取得しましょう。

  1. OpenWeatherMap公式サイトにアクセスし、アカウントを作成(無料)します。
  2. ログイン後、メニューの「My API Keys」から文字列(API Key)をコピーしておきます。 ※発行から有効化されるまで15分〜2時間ほどかかる場合があります。

3. Pythonでの実装コード

今回は、指定した都市の「現在の天気」と「気温」を表示するシンプルなアプリを作ります。 事前に requests ライブラリをインストールしておいてください(pip install requests)。

Python

import requests

def get_weather(city_name):
    # 先ほど取得したAPIキーを入力
    API_KEY = "あなたのAPIキーをここに"
    # 日本語でデータを取得するための設定
    URL = f"http://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={API_KEY}&lang=ja&units=metric"

    try:
        response = requests.get(URL)
        data = response.json()

        if data["cod"] != 200:
            print(f"エラーが発生しました: {data['message']}")
            return

        # 必要なデータを抽出
        weather = data["weather"][0]["description"]
        temp = data["main"]["temp"]
        humidity = data["main"]["humidity"]

        print(f"--- {city_name} の天気情報 ---")
        print(f"現在の天気: {weather}")
        print(f"現在の気温: {temp}℃")
        print(f"現在の湿度: {humidity}%")

    except Exception as e:
        print(f"接続エラーが発生しました: {e}")

if __name__ == "__main__":
    city = input("天気を知りたい都市名を入力してください (例: Tokyo): ")
    get_weather(city)

4. コードのポイント解説

この短いコードの中には、Web開発の基本が詰まっています。

  • URLのパラメータ: units=metric を指定することで、温度を華氏(℉)ではなく、日本でおなじみの摂氏(℃)で取得しています。
  • JSON形式の処理: response.json() という部分に注目してください。APIから返ってくるデータは「JSON(ジェイソン)」という辞書のような形式なので、これをPythonの辞書として扱えるように変換しています。
  • 例外処理: try-except を使うことで、ネットが繋がっていない時や、都市名を間違えた時でもプログラムが強制終了しないようにしています。

5. さらに発展させるアイデア(これをやれば脱・初心者!)

このアプリをベースに、自分好みにカスタマイズしてみましょう。

  • LINEに通知する: 「朝7時に雨予報だったらLINEを送る」というスクリプトに改造する。
  • GUI化する: 以前紹介した自作ブラウザの知識を活かして、ボタンを押すと天気が表示されるウィンドウを作る。
  • 複数都市を比較: 東京、大阪、ニューヨークの天気を一覧表示する。

まとめ

APIを使えば、自分一人では作れないような高度なアプリも驚くほど簡単に作ることができます。

「プログラミングを学んでも何を作ればいいかわからない」という方は、まずは興味のあるAPI(Google Maps, Spotify, YouTube, PokeAPIなど)を探して、1つだけデータを取得することから始めてみてください。

わからないことがあれば、前回の記事で紹介したようにChatGPTにコードを読み込ませて解説してもらうのが近道ですよ!


あわせて読みたい記事:


編集後記

今回は天気APIを扱いましたが、世の中には「おもしろAPI」がたくさんあります。例えば、猫の画像をランダムに取得するAPIや、ポケモンの情報を取得するAPIなども。 まずは「遊び」の延長でコードを書いてみることが、一番の上達法です