今日の天気をPythonで調べる

Uncategorized

プロンプト例:次のブログの続きを書いて:これから24時間くらいまでの天気予報と予想最高、最低気温を取得するようなプログラムをPythonで書いてみましょう。WebのAPIを利用します。

ChatGPT

これから24時間くらいまでの天気予報と予想最高、最低気温を取得するようなプログラムをPythonで書いてみましょう。WebのAPIを利用します。

1. APIの選定

まず、天気予報を提供するWeb APIを選定します。ここでは、無料で利用できるOpenWeatherMap APIを使用します。OpenWeatherMapは、天気情報を提供するAPIで、無料のアカウントを作成することで利用できます。

2. APIキーの取得

OpenWeatherMapの公式サイトにアクセスし、アカウントを作成してAPIキーを取得します。このAPIキーを使用して、APIリクエストを行います。

3. 必要なライブラリのインストール

PythonでAPIにアクセスするために、requestsライブラリを使用します。まず、以下のコマンドを実行してrequestsライブラリをインストールします。

pip install requests

4. プログラムの作成

以下に、天気予報と予想最高、最低気温を取得するPythonプログラムの例を示します。

import requests
import datetime

# OpenWeatherMapのAPIキーを設定
api_key = "YOUR_API_KEY"
# 取得する場所の都市名を設定
city = "Tokyo"
# OpenWeatherMapのAPIエンドポイントを設定
url = f"http://api.openweathermap.org/data/2.5/forecast?q={city}&appid={api_key}&units=metric&lang=ja"

# APIリクエストを送信
response = requests.get(url)
data = response.json()

# データの抽出と表示
def get_weather_forecast(data):
for forecast in data['list']:
dt = datetime.datetime.fromtimestamp(forecast['dt'])
temp_min = forecast['main']['temp_min']
temp_max = forecast['main']['temp_max']
description = forecast['weather'][0]['description']
print(f"{dt}: 天気: {description}, 最高気温: {temp_max}°C, 最低気温: {temp_min}°C")

# 24時間以内の天気予報を表示
print("これから24時間の天気予報:")
get_weather_forecast(data)

5. プログラムの実行

このプログラムを実行すると、指定された都市(ここでは東京)の24時間以内の天気予報と予想最高、最低気温がコンソールに表示されます。YOUR_API_KEYには、OpenWeatherMapで取得したAPIキーを入力してください。

6. プログラムの解説

  • requests.get(url):指定されたURLに対してHTTP GETリクエストを送信し、レスポンスを取得します。
  • data.json():レスポンスのJSONデータをパースしてPythonの辞書オブジェクトに変換します。
  • get_weather_forecast(data):JSONデータから必要な情報を抽出し、24時間以内の天気予報を表示します。

7. エラーハンドリングの追加

実際のアプリケーションでは、エラーハンドリングを追加してAPIリクエストが失敗した場合や、予期しないデータが返された場合に対応することが重要です。

def get_weather_forecast(data):
try:
for forecast in data['list']:
dt = datetime.datetime.fromtimestamp(forecast['dt'])
temp_min = forecast['main']['temp_min']
temp_max = forecast['main']['temp_max']
description = forecast['weather'][0]['description']
print(f"{dt}: 天気: {description}, 最高気温: {temp_max}°C, 最低気温: {temp_min}°C")
except KeyError as e:
print(f"データ取得エラー: {e}")

try:
# APIリクエストを送信
response = requests.get(url)
response.raise_for_status()
data = response.json()
print("これから24時間の天気予報:")
get_weather_forecast(data)
except requests.exceptions.RequestException as e:
print(f"APIリクエストエラー: {e}")

このようにして、エラーハンドリングを追加することで、より堅牢なプログラムを作成することができます。

これで、Pythonを使用してWeb APIから天気予報を取得し、24時間以内の予想最高気温と最低気温を表示するプログラムの作成が完了です。これを応用して、さらに詳細な天気情報を取得したり、他の都市の天気予報を取得したりすることも可能です。

コメント

タイトルとURLをコピーしました