Zenn
👏

OpenWeatherAPIの利用するまでの手順

に公開

執筆日

2025/4/2

やること

OpenWeatherAPIの利用するまでの手順をまとめます。

流れ

  1. アカウント作成
  2. APIキー発行
  3. 天気予報を取得する

アカウント作成

  1. 以下のURLをクリック

https://home.openweathermap.org/users/sign_in

  1. Create an Accountをクリック

  2. ユーザ名,メールアドレス,パスワードなどを入力し、アカウント作成
    4.作成後、メールを確認し認証を行う

APIキー取得

  1. 作成したアカウントでログインをし、MyAPI Keysをクリック
  2. Defaultで作成されているAPIキーを取得

サンプルコード

import requests
import json
import math

OPEN_WEATHER_API_KEY = "" # 取得したAPIキーを入力

def get_current_weather(city_name: str = "OSAKA") -> str:
    # 都市の緯度経度を調べる
    geocoding_response = requests.get(
        "http://api.openweathermap.org/geo/1.0/direct",
        params={
            "q": f"{city_name},jp",
            "limit": 1,
            "appid": OPEN_WEATHER_API_KEY
        }
    )
    geocodings = geocoding_response.json()
    if not geocodings:
        return json.dumps({"error": "Geocoding data not found"})
    
    geocoding = geocodings[0]
    lat, lon = geocoding["lat"], geocoding["lon"]
    # 現在の天気を取得
    current_weather_response = requests.get(
        "https://api.openweathermap.org/data/2.5/weather",
        params={
            "lat": lat,
            "lon": lon,
            "units": "metric",
            "lang": "ja",
            "appid": OPEN_WEATHER_API_KEY
        }
    )
    
    if current_weather_response.status_code != 200:
        return json.dumps({"error": "Weather data not found"})
    
    current_weather = current_weather_response.json()
    result = {
        "city_name": city_name,
        "description": current_weather["weather"][0]["description"],
        "temperature": math.floor(current_weather["main"]["temp"])
    }
    
    return json.dumps(result, ensure_ascii=False) 

if __name__ == "__main__":
    print(get_current_weather())

出力結果

{"city_name": "OSAKA", "description": "曇りがち", "temperature": 10}
ヘッドウォータース

Discussion

ログインするとコメントできます