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

如何通过PokeAPI自动获取单只宝可梦的所有属性类型?

解决方法

首先你原代码里的URL写法有误——f-string里不需要写%7Bname%7D,直接用{name}就行,不然请求的地址会带多余的转义字符,可能拿不到正确数据。

原代码里的[0]是硬取第一个属性类型,所以只能拿到单个值。要获取所有类型,你可以遍历poke_request['types']这个列表,把每个元素里的类型名提取出来存到列表里,下面是两种简单可行的方法:

方法一:for循环遍历

import requests

name = "charizard"
# 修正后的URL
url = f'https://pokeapi.co/api/v2/pokemon/{name}'
poke_request = requests.get(url)
poke_data = poke_request.json()  # 变量名更清晰,方便后续理解

types_list = []
# 遍历所有类型条目
for type_entry in poke_data['types']:
    # 提取类型名并添加到列表
    types_list.append(type_entry['type']['name'])

print(types_list)  # 输出结果: ['fire', 'flying']

方法二:列表推导式(更简洁)

import requests

name = "charizard"
url = f'https://pokeapi.co/api/v2/pokemon/{name}'
poke_data = requests.get(url).json()

# 一行代码生成包含所有类型的列表
types_list = [entry['type']['name'] for entry in poke_data['types']]

print(types_list)

这两种方法都不需要指定索引,会自动遍历所有类型条目,最终得到包含目标宝可梦所有属性类型的列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:05:25