見出し画像

Step87 はじめてのAPI ➤現在の気温を取得する

今回はAPIの利活用について、その第一歩として
現在の気温を取得するプログラムを作ってみましょう。

APIの利用を出来るようになれば、アイディアがぐっと広がりますよ(*^^*)
ただ、この記事でも難しいことはしません。

  • Web上の気温情報を

  • Pythonから取得して

  • 画面に表示する

それだけを実装してみます。

まずは 体験すること を大事に進めていきましょう。


APIとは

ざっくり言うと、APIは

外部のサービスから、情報をもらうための仕組み

です。

天気予報や地図、翻訳、SNSなど、
多くのサービスは「API」を通して情報を提供しています。

今回はその中から、気温予報を公開しているサービスを使ってみます。


Open-Meteo ➤気温情報サービスを利用する

今回は Open-Meteo というサービスを利用して、情報をGETしましょう!

このサービスの良いところは、

  • APIキー不要

  • 登録不要

  • 無料

  • 日本の天気などにも対応

という点です。
API入門として、とても扱いやすいサービスです。


事前準備 ➤ライブラリのインストール

今回は、「requests」というライブラリが必要になります。
これは、PythonからWebにアクセスするための道具だと思ってください。

インストール方法
ターミナル(PowerShell等)を開いて、次を入力します。

pip install requests

すでに入っている場合は、そのまま進んで大丈夫です。


コードの入力 ➤気温情報を取得する

Pythonファイルを1つ作ります。
名前は何でも構いませんが、悩まれるようなら「weather_api.py」などにしておきましょう。

そのうえで、まずは下記のコード内容を そのまま 書いてみてください。

import requests

url = "https://api.open-meteo.com/v1/forecast"
params = {
    "latitude": 33.5597,
    "longitude": 133.5311,
    "current_weather": True
}

response = requests.get(url, params=params)
data = response.json()

weather = data["current_weather"]

print("現在の気温:", weather["temperature"], "℃")
print("風速:", weather["windspeed"], "km/h")

実行 ➤動作の確認(気温情報)

ターミナルで動かす場合には、ファイルを保存したフォルダに移動した上で下記のコマンドを実行します。
※VSCodeなどの場合には、▶ボタンで実行。

python weather_api.py

うまくいくと、次のような表示が出ます。

現在の気温: 25.3 ℃
風速: 3.2 km/h

※ 数値は実行したタイミングによって変わります。


解説

細かい仕組みをすべて理解しなくても大丈夫です。
まずは「流れ」をつかみましょう。

Webサービスにアクセスする部分

response = requests.get(url, params=params)

天気予報サービスに対して、
「この場所の天気を教えてください」
とお願いしています。
※今回は天気(晴れや雨などの)情報は含めていません

返ってきたデータを使っている部分

data = response.json()

天気情報は、「JSON形式(辞書のようなデータ)」で返ってきます。

必要な情報だけ取り出している 部分

weather = data["current_weather"]

たくさんある情報の中から、「今の天気に関わる情報」だけを使っています。


検討 ➤緯度や経度を入力するのは面倒

天気予報APIでは、場所をあらかじめ 緯度・経度 で指定していました。

ただ、

  • 緯度・経度ってどこで調べるの?

  • 毎回ネット検索するのは少し面倒

と感じますね(><)
当たり前です。。

そこで、「都市名から緯度・経度を取得する方法」も考えてみましょう。


補足 ➤都市名から緯度・経度を取得する

今回は、Open-Meteoが提供している「地名検索API」を使います。

学習のために、Pythonファイルをもう1つ作ります。
名前はこの記事では「get_location.py」にしておきますが、自由につけてもらって構いません。

import requests

city = input("都市名を入力してください(例:Tokyo, Kochi):")

url = "https://geocoding-api.open-meteo.com/v1/search"
params = {
    "name": city,
    "count": 1,
    "language": "ja"
}

response = requests.get(url, params=params)
data = response.json()

location = data["results"][0]

print("都市名:", location["name"])
print("緯度:", location["latitude"])
print("経度:", location["longitude"])

補足の実行 ➤動作の確認(緯度・経度情報)

python get_location.py

例えば、次のように入力します。

都市名を入力してください(例:Tokyo, Kochi):Kochi

すると、次のように表示されます。

都市名: 高知
緯度: 33.5597
経度: 133.5311

※ 表示される数値は多少前後することがあります。


統合 ➤気温情報APIと組み合わせると…

ここで取得できた緯度・経度の情報を、先ほどの気温情報コードにうまく追加すれば・・・

  • 場所を調べる

  • 数字をコピーする

  • プログラムに貼り付ける

という作業を、1つのPythonプログラムの中で完結させることができます。

APIは、1つだけで使うというよりは、色んな組み合わせによって活用いたします(*^^*)


今回できたこと

  • PythonでWebサービスにアクセスした

  • APIから情報を取得した

  • 必要なデータだけを使った

  • 都市名から位置情報を調べた

ここまでで、APIを使ったプログラムの基本形が完成しましたね(*^^*)
お疲れ様でした!


まとめ

APIの利用は、最初は少し難しそうに聞こえますが、やっていることはとてもシンプルです。

  • 情報をお願いする

  • 返ってきたものを使う

ということ。
上手に活用して、自分だけのアイディアを形にしていきましょう!

次の記事


いいなと思ったら応援しよう!

DOI@日々学びの本質を考え続ける探求者 よろしければ応援お願いします! いただいたチップは引き続きプログラミングや学びについて、皆さんの利益になるようなよい記事を書くことで恩返しをさせていただきます!