关于 pokemon-data-fetcher
pokemon-data-fetcher 是一个从 PokeAPI 获取宝可梦物种并按世代整理为 JSON 的 Python 脚本。它适合需要排序后可复用数据集的开发者或用户,仅使用 Python 标准库,无需外部依赖。
主要功能
- 01从 PokeAPI 获取宝可梦物种
- 02按世代分组结果
- 03按世代对名称排序
- 04写入结构化 JSON
- 05仅使用 Python 标准库
适用场景
- 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详细介绍
Pokemon 数据获取器
概述
此技能提供了一个 Python 脚本,可从 PokeAPI 获取 Pokemon 数据,并将其整理到 JSON 文件中。该脚本会获取所有 Pokemon 名称,按世代分类,并以结构化格式保存结果。
快速开始
获取按世代整理的所有 Pokemon 数据:
cd pokemon-data-fetcher/scripts
python3 fetch_pokemon.py
这将在当前目录中创建 JSON 文件,其中包含按世代整理的 Pokemon 数据。
功能
1. 获取所有 Pokemon
该脚本会从 PokeAPI 获取所有 Pokemon,并按所属世代整理:
- 第一世代(关都地区)
- 第二世代(城都地区)
- 第三世代(丰缘地区)
- 第四世代(神奥地区)
- 第五世代(合众地区)
- 第六世代(卡洛斯地区)
- 第七世代(阿罗拉地区)
- 第八世代(伽勒尔地区)
- 第九世代(帕底亚地区)
2. 按世代排序
每个世代中的 Pokemon 会自动按字母顺序排序,方便查阅。
3. JSON 输出
结果以 JSON 格式保存,便于解析并与其他工具集成:
pokemon_by_generation.json- 按世代整理的所有 Pokemon- JSON 格式整洁易读
安装
- 确保已安装 Python 3.6+
- 无需安装外部依赖 — 仅使用 Python 标准库
该脚本使用内置模块:urllib、json、sys、time
用法
基本用法
进入脚本目录并运行:
cd pokemon-data-fetcher/scripts
python3 fetch_pokemon.py
脚本输出
脚本将会:
- 连接到 PokeAPI
- 获取所有 Pokemon 物种
- 按世代整理
- 在每个世代内按字母顺序排序
- 保存到
pokemon_by_generation.json
输出格式
{
"generation-i": [
"bulbasaur",
"charmander",
"squirtle",
...
],
"generation-ii": [
"chikorita",
"cyndaquil",
"totodile",
...
],
...
}
示例
示例 1:获取 Pokemon 数据
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
负责获取所有 Pokemon 数据的主脚本:
函数:
fetch_all_pokemon()- 从 API 获取所有 Pokemon 物种organize_by_generation()- 按世代对 Pokemon 分组save_to_json()- 将结果写入 JSON 文件
使用的 API 端点:
https://pokeapi.co/api/v2/pokemon-species/?limit=10000- 获取所有 Pokemon 物种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 .
最佳实践
- 定期运行脚本以获取最新的 Pokemon 数据
- 将 JSON 输出存储在版本控制中,以跟踪更改
- 将这些数据用作 Pokemon 相关应用的参考
- 考虑缓存结果,以避免重复调用 API
API 信息
此技能使用 PokeAPI,这是一个免费且开放的 Pokemon API,提供全面的 Pokemon 数据。
API 特性:
- 无需身份验证
- 速率限制:遵循合理使用原则(合理使用时没有严格限制)
- 数据包括:Pokemon 物种、特性、属性类型、招式等
- 文档完善且持续维护
API 限制:
- 请合理使用这项免费服务
- 频繁请求时请实现缓存
- 该脚本旨在尽量减少 API 调用
参考资料
- PokeAPI 文档:https://pokeapi.co/docs/v2
- PokeAPI GitHub:https://github.com/PokeAPI/pokeapi
- Pokemon 世代:https://bulbapedia.bulbagarden.net/wiki/Generation
另请参阅
- 如需详细分析 Pokemon 数据,可扩展脚本并添加更多 API 端点
- 可考虑将这些数据用于 Pokemon 队伍构建器、Pokedex 应用或教育工具