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

如何从Riot API返回的字典列表中筛选championId为25的指定条目

英雄联盟熟练度API筛选指定英雄数据修复方案

问题原因

你当前代码存在两个核心问题:

  • Riot英雄熟练度接口返回的是列表结构,每个元素对应单个英雄的熟练度字典,不存在名为championid25的索引,直接按该索引取值会抛出语法/取值异常
  • 请勿用json作为变量名,避免和Python标准库json模块重名,引发后续逻辑冲突

修正后实现代码

import requests
from time import sleep

# 请替换为你自己的Riot开发者API密钥
API_KEY = "YOUR_RIOT_API_KEY"

def get_champion_mastery(summoner_id, target_champion_id=25):
    # 请求全英雄熟练度数据
    mastery_list = requests.get(
        f"https://na1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-summoner/{summoner_id}?api_key={API_KEY}"
    ).json()
    sleep(1.5) # 适配Riot API频率限制
    # 筛选目标英雄数据
    target_data = next((item for item in mastery_list if item['championId'] == target_champion_id), None)
    if target_data:
        print(target_data)
        return target_data
    print("未查询到对应英雄的熟练度数据")
    return None

逻辑说明

  • 用生成器表达式搭配next()方法筛选条目,匹配到符合条件的字典后就终止遍历,相比全量遍历列表效率更高
  • 新增空值兜底逻辑,当召唤师从未玩过目标英雄时不会抛出异常
  • 支持自定义查询任意英雄的熟练度,只需调用时传入第二个参数指定championId即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:06:02