mcpField
P
pokemon-data-fetcher

pokemon-data-fetcher

github.com/kehwar数据与数据库061 次安装42 周前更新
代码仓库

关于 pokemon-data-fetcher

pokemon-data-fetcher 是一个从 PokeAPI 获取宝可梦物种并按世代整理为 JSON 的 Python 脚本。它适合需要排序后可复用数据集的开发者或用户,仅使用 Python 标准库,无需外部依赖。

主要功能

  1. 01从 PokeAPI 获取宝可梦物种
  2. 02按世代分组结果
  3. 03按世代对名称排序
  4. 04写入结构化 JSON
  5. 05仅使用 Python 标准库

适用场景

  1. 01为图鉴应用准备按世代整理的数据
  2. 02将宝可梦列表载入队伍构建工具
  3. 03创建用于分析的本地参考数据集

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kehwar/experiments --skill pokemon-data-fetcher

安装后在 Claude Code 中输入/pokemon-data-fetcher确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
fetch_pokemon.py
pokemon_by_generation_sample.json
pokemon_by_generation.json
README.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 格式整洁易读

安装

  1. 确保已安装 Python 3.6+
  2. 无需安装外部依赖 — 仅使用 Python 标准库

该脚本使用内置模块:urllib、json、sys、time

用法

基本用法

进入脚本目录并运行:

cd pokemon-data-fetcher/scripts
python3 fetch_pokemon.py
脚本输出

脚本将会:

  1. 连接到 PokeAPI
  2. 获取所有 Pokemon 物种
  3. 按世代整理
  4. 在每个世代内按字母顺序排序
  5. 保存到 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 调用

参考资料

另请参阅

  • 如需详细分析 Pokemon 数据,可扩展脚本并添加更多 API 端点
  • 可考虑将这些数据用于 Pokemon 队伍构建器、Pokedex 应用或教育工具

评论

支持 Markdown