![見出し画像](https://assets.st-note.com/production/uploads/images/148720722/rectangle_large_type_2_cc13ef69fac87704132b1ebc756af211.jpeg?width=1200)
天気予報を取得するプログラムを書いてみた
プログラムの概要
このプログラムは、指定した都市の天気情報をインターネットから取得して表示するものです。天気情報は、OpenWeatherMapというサービスから取得し、以下の情報を表示します。
都市名
天気の説明
気温
最低気温
最高気温
湿度
プログラムの詳細説明
ライブラリのインポート
import requests
requestsというライブラリを使っています。これは、インターネット上のデータを取得するために使います。
天気情報を取得する関数の定義
def get_weather(city, api_key):
get_weatherという名前の関数を定義しています。この関数は、指定された都市(city)とAPIキー(api_key)を使って天気情報を取得します。
APIの基本URLとパラメータの設定
base_url = "http://api.openweathermap.org/data/2.5/weather" params = { 'q': city, 'appid': api_key, 'units': 'metric', # 摂氏温度で表示 'lang': 'ja' # 日本語で表示 }
base_urlには、天気情報を取得するための基本URLを指定します。
paramsには、APIに送るパラメータを辞書形式で設定します。qは都市名、appidはAPIキー、unitsは温度の単位(摂氏に設定)、langは言語(日本語に設定)です。
APIにリクエストを送る
response = requests.get(base_url, params=params)
requests.getを使って、APIにリクエストを送ります。この時、base_urlとparamsを指定します。
レスポンスの処理
if response.status_code == 200: data = response.json() weather_description = data['weather'][0]['description'] temp = data['main']['temp'] temp_min = data['main']['temp_min'] temp_max = data['main']['temp_max'] humidity = data['main']['humidity'] print(f"都市: {city}") print(f"天気: {weather_description}") print(f"気温: {temp}℃") print(f"最低気温: {temp_min}℃") print(f"最高気温: {temp_max}℃") print(f"湿度: {humidity}%") else: print("天気情報を取得できませんでした。")
response.status_code == 200は、リクエストが成功したかどうかを確認しています。成功した場合(ステータスコードが200)、天気情報を表示します。
data = response.json()は、APIからのレスポンスをJSON形式で取得し、dataに保存します。
dataから必要な情報(天気の説明、気温、最低気温、最高気温、湿度)を取り出し、画面に表示します。
もしリクエストが失敗した場合(ステータスコードが200以外)、エラーメッセージを表示します。
APIキーと都市名の設定
api_key = "YOUR_API_KEY" city = "Nagoya" get_weather(city, api_key)
api_keyには、OpenWeatherMapで取得したAPIキーを入力します。
cityには、天気を知りたい都市名を入力します(例:名古屋)。
最後に、get_weather関数を呼び出して天気情報を取得します。
プログラムの実行方法
OpenWeatherMapに登録し、APIキーを取得します。
プログラム内のapi_key変数に取得したAPIキーを入力します。
city変数に天気を知りたい都市名を入力します。
プログラムを実行します。天気情報が画面に表示されます。
これで、プログラムがどのように動作するかが理解できると思います。暇なときにでも動かしてみてください!(バグがあったらコメントで教えてくださいm(_ _"m))
この記事が気に入ったらサポートをしてみませんか?