0Pricing
Learn AI with Python · レッスン

公開データ API の操作

OpenWeatherMap、Wikipedia、政府の公開 API を使った実践的なデータ収集例を扱います。

「公開データ API の操作」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

公開 API で実践する

データ収集を学ぶ最良の方法は、実際の API にリクエストを送ることです。このレッスンでは、使いやすい次の 3 つの API を使用します。

  • JSONPlaceholder — 練習用の架空の REST API。キーは不要です
  • OpenWeatherMap — 実際の天気データを提供する API。無料の API キーが必要です
  • Wikipedia API — 記事のコンテンツと検索を提供します

練習用の JSONPlaceholder

JSONPlaceholderは、認証なしで架空の投稿、ユーザー、コメントを提供します。リクエストと解析のコードをテストするのに最適です。

import requests

resp = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10)
resp.raise_for_status()
posts = resp.json()
print(len(posts), "posts")
print(posts[0]["title"])

レスポンスから DataFrame へのワークフロー

標準的なワークフローは、JSON を取得してから、分析のために DataFrame に直接読み込むことです。

import pandas as pd

posts = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10).json()
df = pd.DataFrame(posts)
print(df.head())
print(df["userId"].value_counts())

OpenWeatherMap — キーの取得

OpenWeatherMapでは、appidパラメーターで渡す無料のAPI keyが必要です。キーをコードに記述せず、環境変数から読み込んでください。

import os

API_KEY = os.environ["OWM_API_KEY"]   # set OWM_API_KEY in your shell

OpenWeatherMap — クエリパラメーター

現在の天気を取得するエンドポイントでは、q(都市)、appid(キー)、units(metric/imperial)を指定します。

import requests, os

params = {
    "q": "Istanbul",
    "appid": os.environ["OWM_API_KEY"],
    "units": "metric",
}
resp = requests.get("https://api.openweathermap.org/data/2.5/weather", params=params, timeout=10)
resp.raise_for_status()
data = resp.json()

ネストされた JSON フィールドの抽出

実際の API レスポンスは、深くネストされていることがあります。キーを連結して目的のデータまでたどり、存在しない可能性があるフィールドにはデフォルト値を指定した.get()を使用してください。

temp = data["main"]["temp"]
humidity = data["main"]["humidity"]
desc = data["weather"][0]["description"]
print(f"{temp} C, {humidity}% humidity, {desc}")

複数都市の天気を収集する

都市をループ処理し、必要なフィールドを辞書のリストに平坦化してから、DataFrame を作成してください。

cities = ["Istanbul", "London", "Tokyo"]
rows = []
for c in cities:
    p = {"q": c, "appid": os.environ["OWM_API_KEY"], "units": "metric"}
    d = requests.get("https://api.openweathermap.org/data/2.5/weather", params=p, timeout=10).json()
    rows.append({"city": c, "temp": d["main"]["temp"], "desc": d["weather"][0]["description"]})
import pandas as pd
df = pd.DataFrame(rows)

Wikipedia API

Wikipedia APIは、検索と記事のコンテンツを提供します。actionとformat=jsonに加えて、説明的なUser-Agentヘッダーを指定する必要があります。

params = {
    "action": "query",
    "list": "search",
    "srsearch": "machine learning",
    "format": "json",
}
headers = {"User-Agent": "data-collector/1.0 (you@example.com)"}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, headers=headers, timeout=10)
results = resp.json()["query"]["search"]

記事の抜粋を取得する

prop=extractsとexintro=Trueを使用すると、記事の導入段落を取得できます。テキストデータセットの作成に便利です。

params = {
    "action": "query",
    "prop": "extracts",
    "exintro": True,
    "explaintext": True,
    "titles": "Artificial intelligence",
    "format": "json",
}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, timeout=10)
pages = resp.json()["query"]["pages"]
for pid, page in pages.items():
    print(page["extract"][:300])

API ドキュメントを読む

API ごとに仕様は異なります。コードを書く前に、ベース URL、必須パラメーター、認証方式、レスポンスの構造、レート制限についてドキュメントを確認してください。

まず 1 件のリクエストを対話的にテストし、resp.json()を調べてから、実際の構造に合わせてループを組み立ててください。

API を適切に利用する

公開 API は共有リソースです。次の点を守って利用してください。

  • 識別情報を含むUser-Agentを送信する
  • 同じデータを再取得しないよう、結果をキャッシュする
  • リクエストの間隔を空け、レート制限を守る
  • 各 API の利用規約を読み、従う

クイックチェック: 練習用 API

API キーに登録しなくても、リクエストと解析のコードをテストしたいとします。

まとめ: 公開データ API

実際の API からデータを収集する練習をしました。

  • 認証なしの練習にはJSONPlaceholder
  • q、appid、unitsパラメーターと、環境変数から取得したキーを使うOpenWeatherMap
  • 検索と記事の抜粋に使うWikipedia API
  • 取得したデータを DataFrame にするワークフローと、ネストされた JSON をたどる方法
  • User-Agent、キャッシュ、レート制限、利用規約を守る適切な利用習慣

これでデータ収集は完了です。次は、テキスト AI のための正規表現を扱います。

よくある質問

「公開データ API の操作」レッスンは無料ですか?

はい。「公開データ API の操作」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「公開データ API の操作」で何を学びますか?

OpenWeatherMap、Wikipedia、政府の公開 API を使った実践的なデータ収集例を扱います。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「公開データ API の操作」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. データ収集のための REST API 基礎
  2. 大規模データセットのページングと収集
  3. 収集データを効率的に保存する
  4. 公開データ API の操作
← Learn AI with Pythonに戻る