LEVEL 9 ・ API / Lesson 24

APIにお願いして、データを受け取る

URLにお願いを出して、JSONの返事を受け取ります。練習用のAPIで、本物の通信を体験します。

目安 20分 ・ インストール不要

このレッスンが終わったら

「APIは受付窓口。URLにお願いを出して、JSONの返事を受け取る。APIキーは人に見せない」と言える。

STEP 1

できることを見る

APIとは、システム同士が情報をやり取りするための、受付窓口です。

レストランにたとえてみましょう。あなた(お客さん)は、料理を自分で作りません。窓口(店員さん)に、注文を伝えると、料理(結果)が届きます。キッチンの中の仕組みは、知らなくても大丈夫です。

  1. 自分のPython「為替レートを教えて」
  2. API受付窓口
  3. 外部のシステムデータを持っている
  4. 返事(JSON)データが届く
お願い(リクエスト)を出して、返事(レスポンス)を受け取ります。返事は、たいていJSONです。

自分のパソコンで、実際のAPIを使うときは、requests という道具を使います。(このページでは動かせないので、見るだけです)

import requests

response = requests.get("https://api.example.com/rates")
data = response.json()
print(data["rates"]["JPY"])
STEP 2

動かしてみる

このページでは、requests の代わりに、ブラウザ用の仕組み(open_url)を使います。この講座のサイトの中に、練習用のAPIを用意しました。為替レートを返してくれます。(※実際のレートではない、練習用のデータです)

練習用のAPIに、お願いを出すコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

本物の通信(HTTP)で、データが届きました。2025-10-01 のドル円レート: 150.2 と表示されたはずです。

STEP 3

1行ずつ読む

1行ずつ日本語にしてみる
from pyodide.http import open_url(このページ用の)通信の道具を使う
response = open_url("/api-sample/rates.json")このURL(住所)に、お願いを出して、返事を「response」として受け取る
data = json.load(response)返事のJSONを、Pythonの辞書に変換する
print(data["date"], "のドル円レート:", data["rates"]["JPY"])日付と、円のレートを取り出して、表示する

日本語にすると

このURLにデータをお願いして、届いたJSONを辞書に変換し、日付と円のレートを表示してください。

APIの使い方は、いつも次の3ステップです。

  1. URLにお願いを出す。(どの窓口の、どの情報か)
  2. 返事(JSON)を受け取る。
  3. 辞書として、必要な所を取り出す。(Lesson「JSON」と同じです)
STEP 4

1か所だけ変える

① 別のAPIを使う。 URLを変えると、別のデータが届きます。社員の一覧を返す、練習用APIも用意しました。

社員の一覧を、APIから取得するコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

② 取得したデータで、計算する。 為替レートを使って、1000ドルを円に換算します。

1000ドルを円に換算するコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

APIから届く値は、Lesson 07 の変数と同じように、計算にも使えます。

③ URLを間違えると? 存在しないURLに、お願いを出してみます。

URLを間違えてみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

JSONDecodeError: Expecting value と出ます。「返事が、JSONではありませんでした」という意味です。URLが違うと、「そのページはありません」という別の返事(JSONではない文章)が返ってくるため、変換に失敗するのです。URLの綴りを見直すのが、まず試すことです。

STEP 5

自分で書く

お題① 為替レートのAPIから、ユーロ(EUR)のレートを表示してください。

お題①:ユーロのレートコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

円のレートは data["rates"]["JPY"] でした。同じ形で、"EUR" を取り出します。

答えの例を見る
import json
from pyodide.http import open_url

data = json.load(open_url("/api-sample/rates.json"))
print(data["rates"]["EUR"])

お題② 社員の一覧のAPIから、全員の名前だけを、1行ずつ表示してください。

お題②:全員の名前コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

for e in data["employees"]: のあと、print(e["name"]) と書きます。

答えの例を見る
import json
from pyodide.http import open_url

data = json.load(open_url("/api-sample/employees.json"))
for e in data["employees"]:
  print(e["name"])
STEP 6

仕事ならどう使う?