You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PokeAPI获取前151只宝可梦数据并生成DataFrame

获取前151只宝可梦数据并转为DataFrame

首先修正你初始请求的URL错误,原URL里的limit=151=0是语法错误,正确格式应为limit=151&offset=0。以下是完整实现方案:

步骤1:获取前151只宝可梦的详情URL列表

import pandas as pd
import requests

# 请求初代151只宝可梦的基础列表
poke_list_response = requests.get("https://pokeapi.co/api/v2/pokemon?limit=151&offset=0")
poke_list_data = poke_list_response.json()
# 提取每只宝可梦的详情接口URL
poke_urls = [poke["url"] for poke in poke_list_data["results"]]

步骤2:循环请求详情数据并整理字段

PokeAPI对请求频率限制宽松,151次请求完全可以直接循环处理。这里提取常用字段,你可以根据需求增减:

pokemon_data = []

for url in poke_urls:
    # 请求单只宝可梦的详情数据
    poke_detail = requests.get(url).json()
    # 整理需要的信息
    pokemon_info = {
        "id": poke_detail["id"],
        "name": poke_detail["name"],
        "height": poke_detail["height"],
        "weight": poke_detail["weight"],
        "types": ", ".join([t["type"]["name"] for t in poke_detail["types"]]),
        "base_experience": poke_detail["base_experience"]
    }
    pokemon_data.append(pokemon_info)

步骤3:转换为pandas DataFrame

df = pd.DataFrame(pokemon_data)
# 按宝可梦编号排序,确保顺序符合初代宝可梦的编号逻辑
df = df.sort_values("id").reset_index(drop=True)

# 查看前5条数据验证结果
print(df.head())

内容的提问来源于stack exchange,提问作者Uemura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:35:35