pokemon-data-fetcher について
pokemon-data-fetcherは、PokeAPIからポケモンの種族データを取得し、世代別のJSONとして保存するPythonスクリプトです。整理済みの再利用可能なデータを必要とする開発者や利用者向けで、外部依存なしにPython標準ライブラリだけで動作します。
主な機能
- 01PokeAPIから種族データを取得
- 02世代ごとにデータを分類
- 03世代内で名前をアルファベット順に整列
- 04構造化したJSONを出力
- 05Python標準ライブラリのみを使用
活用シーン
- 01図鑑アプリ用に世代別データを準備
- 02チーム構築ツールにポケモン一覧を読み込み
- 03分析用のローカル参照データを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kehwar/ experiments --skill pokemon-data-fetcherインストール後、Claude Code で/pokemon-data-fetcherを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/fetch_pokemon.pypokemon_by_generation_sample.jsonpokemon_by_generation.jsonREADME.md詳細
ポケモンデータ取得ツール
概要
このスキルでは、PokeAPIからポケモンのデータを取得し、JSONファイルに整理するPythonスクリプトを提供します。このスクリプトはすべてのポケモンの名前を取得し、世代ごとに並べ替えて、構造化された形式で保存します。
クイックスタート
すべてのポケモンデータを世代ごとに整理して取得します。
cd pokemon-data-fetcher/scripts
python3 fetch_pokemon.py
これにより、世代ごとに整理されたポケモンデータを含むJSONファイルが、現在のディレクトリに作成されます。
機能
1. すべてのポケモンを取得する
このスクリプトはPokeAPIからすべてのポケモンを取得し、世代ごとに整理します。
- 第I世代(カントー地方)
- 第II世代(ジョウト地方)
- 第III世代(ホウエン地方)
- 第IV世代(シンオウ地方)
- 第V世代(イッシュ地方)
- 第VI世代(カロス地方)
- 第VII世代(アローラ地方)
- 第VIII世代(ガラル地方)
- 第IX世代(パルデア地方)
2. 世代ごとに並べ替える
各世代のポケモンは、参照しやすいように自動的にアルファベット順に並べ替えられます。
3. JSON出力
結果は、解析やほかのツールとの連携が簡単なJSON形式で保存されます。
pokemon_by_generation.json- すべてのポケモンを世代ごとに整理したファイル- 見やすく整形されたJSON
インストール
- Python 3.6+がインストールされていることを確認します
- 外部依存関係は不要です。Python標準ライブラリのみを使用します
このスクリプトでは、組み込みモジュールのurllib、json、sys、timeを使用します。
使い方
基本的な使い方
scriptsディレクトリに移動し、次のコマンドを実行します。
cd pokemon-data-fetcher/scripts
python3 fetch_pokemon.py
スクリプトの出力
このスクリプトは次の処理を行います。
- PokeAPIに接続します
- すべてのポケモンの種を取得します
- 世代ごとに整理します
- 各世代内でアルファベット順に並べ替えます
pokemon_by_generation.jsonに保存します
出力形式
{
"generation-i": [
"bulbasaur",
"charmander",
"squirtle",
...
],
"generation-ii": [
"chikorita",
"cyndaquil",
"totodile",
...
],
...
}
使用例
例1:ポケモンデータを取得する
cd pokemon-data-fetcher/scripts
python3 fetch_pokemon.py
出力:
Fetching Pokemon data from PokeAPI...
Fetched 1025 Pokemon species
Organizing by generation...
Results saved to pokemon_by_generation.json
例2:データを使用する
import json
# Load the generated data
with open('pokemon_by_generation.json', 'r') as f:
data = json.load(f)
# Get all Generation I Pokemon
gen1_pokemon = data['generation-i']
print(f"Generation I has {len(gen1_pokemon)} Pokemon")
print(f"First Pokemon: {gen1_pokemon[0]}")
スクリプトの詳細
fetch_pokemon.py
ポケモンデータの取得をすべて処理するメインスクリプトです。
関数:
fetch_all_pokemon()- APIからすべてのポケモンの種を取得しますorganize_by_generation()- ポケモンを世代ごとに分類しますsave_to_json()- 結果をJSONファイルに書き込みます
使用するAPIエンドポイント:
https://pokeapi.co/api/v2/pokemon-species/?limit=10000- すべてのポケモンの種を取得しますhttps://pokeapi.co/api/v2/generation/{id}- 世代の詳細を取得します
トラブルシューティング
問題:接続エラー
症状: スクリプトが接続エラーで失敗する
解決策: インターネット接続を確認し、PokeAPIにアクセスできることを確認します。
curl https://pokeapi.co/api/v2/pokemon-species/1
予防策: このスクリプトには、一時的なネットワークの問題に対応する再試行処理が含まれています。
問題:依存関係の不足
症状: 追加のインストールを行わなくても、スクリプトが正常に実行される
注: このスクリプトはPython標準ライブラリのモジュール(urllib.request、json、sys、time)のみを使用するため、外部依存関係をインストールする必要はありません。
問題:アクセス許可が拒否される
症状: 出力ファイルを書き込めない
解決策: 現在のディレクトリへの書き込み権限があることを確認します。
chmod +w .
ベストプラクティス
- 最新のポケモンデータを取得するため、スクリプトを定期的に実行します
- 変更を追跡できるよう、JSON出力をバージョン管理に保存します
- ポケモン関連アプリケーションの参照データとして使用します
- API呼び出しの繰り返しを避けるため、結果をキャッシュすることを検討します
API情報
このスキルでは、包括的なポケモンデータを提供する無料のオープンなポケモンAPIであるPokeAPIを使用します。
APIの機能:
- 認証は不要です
- レート制限:フェアユースポリシー(妥当な利用に対する厳しい制限はありません)
- 含まれるデータ:ポケモンの種、特性、タイプ、わざなど
- ドキュメントが整備され、積極的に保守されています
APIの制限事項:
- 無料サービスを尊重してご利用ください
- 頻繁にリクエストする場合は、キャッシュを実装してください
- このスクリプトはAPI呼び出しを最小限に抑えるよう設計されています
参考情報
- PokeAPIドキュメント:https://pokeapi.co/docs/v2
- PokeAPI GitHub:https://github.com/PokeAPI/pokeapi
- ポケモンの世代:https://bulbapedia.bulbagarden.net/wiki/Generation
関連項目
- Pokémon のデータを詳しく分析するには、スクリプトに API エンドポイントを追加してください
- Pokémon チームビルダー、Pokédex アプリ、教育ツールでのデータの活用をご検討ください