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

Python解析API返回的JSON时仅输出玩家姓名首字符,求助

问题分析与修正方案

你的代码存在三个核心问题:

  • 遍历对象错误:data["games"][0]["offers"][0]["player"]是单个玩家的名字字符串,遍历字符串会逐个取出字符,再加上循环里的break,自然只返回首字符。
  • 未定义变量:代码里的offers和player都没提前定义,实际运行会直接抛出NameError。
  • 逻辑范围太窄:你只取了第一个比赛的第一个offer,没有遍历所有比赛和offer,根本拿不到所有参与者。

修正后的代码(获取所有玩家全名)

import requests

url = "https://betkarma.com/api/propsComparison?startDate=2023-10-17&endDate=2023-10-23&league=nfl"
response = requests.get(url)
data = response.json()

# 遍历所有比赛
for game in data["games"]:
    # 遍历每场比赛下的所有offer
    for offer in game["offers"]:
        # 直接取出玩家全名并打印
        print(offer["player"])

进阶:获取去重后的玩家名单

如果接口返回的玩家有重复,可以用集合自动去重:

import requests

url = "https://betkarma.com/api/propsComparison?startDate=2023-10-17&endDate=2023-10-23&league=nfl"
response = requests.get(url)
data = response.json()

unique_players = set()

for game in data["games"]:
    for offer in game["offers"]:
        unique_players.add(offer["player"])

# 打印去重后的所有玩家
for player in unique_players:
    print(player)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:42:17