見出し画像

天気予報を取得するプログラムを書いてみた

プログラムの概要

このプログラムは、指定した都市の天気情報をインターネットから取得して表示するものです。天気情報は、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以外)、エラーメッセージを表示します。

  1. APIキーと都市名の設定

api_key = "YOUR_API_KEY" city = "Nagoya" get_weather(city, api_key)
api_keyには、OpenWeatherMapで取得したAPIキーを入力します。
cityには、天気を知りたい都市名を入力します(例:名古屋)。
最後に、get_weather関数を呼び出して天気情報を取得します。

プログラムの実行方法

  1. OpenWeatherMapに登録し、APIキーを取得します。

  2. プログラム内のapi_key変数に取得したAPIキーを入力します。

  3. city変数に天気を知りたい都市名を入力します。

  4. プログラムを実行します。天気情報が画面に表示されます。

これで、プログラムがどのように動作するかが理解できると思います。暇なときにでも動かしてみてください!(バグがあったらコメントで教えてくださいm(_ _"m))

この記事が気に入ったらサポートをしてみませんか?