👏
OpenWeatherAPIの利用するまでの手順
執筆日
2025/4/2
やること
OpenWeatherAPIの利用するまでの手順をまとめます。
流れ
- アカウント作成
- APIキー発行
- 天気予報を取得する
アカウント作成
- 以下のURLをクリック
-
Create an Accountをクリック
-
ユーザ名,メールアドレス,パスワードなどを入力し、アカウント作成
4.作成後、メールを確認し認証を行う
APIキー取得
- 作成したアカウントでログインをし、MyAPI Keysをクリック
- 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