ショウのプログラミング教室

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

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

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

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

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


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

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


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開発の基本が詰まっています。


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

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


まとめ

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

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

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


あわせて読みたい記事:


編集後記

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

モバイルバージョンを終了