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

按分组统计记录:基于JSON API数据实现球员按赛区分组计数

按赛区分组统计球员数量的解决方案

嘿,我来帮你搞定这个按赛区分组统计球员数量的问题~先看看你现有代码里的几个小问题,再给你完整的解决方案:

现有代码的问题点

  1. players = players("event") 这行是错误的:players 是你从JSON响应里拿到的列表,不是函数,不能这么调用。如果你想从event字段下获取球员列表,应该用字典取值的方式。
  2. print(division) 会报错:division变量根本没定义,你得先从每个球员的信息里提取赛区字段,或者遍历统计后的结果来输出。

完整实现步骤

首先假设你的API返回的JSON数据里,每个球员对象都包含division字段(毕竟要分组必须有这个标识嘛),比如修正后的JSON结构大概是这样:

{
  "players": [
    {"player_full_name": "ghny", "url": "...", "division": "East"},
    {"player_full_name": "Alice", "url": "...", "division": "West"},
    {"player_full_name": "Bob", "url": "...", "division": "East"}
  ]
}

下面给你两种实用的实现方式:

方式一:用collections.defaultdict(简洁高效)

import json
from collections import defaultdict

# 模拟API返回的JSON响应
json_response = {
  "players": [
    {"player_full_name": "ghny", "url": "...", "division": "East"},
    {"player_full_name": "Alice", "url": "...", "division": "West"},
    {"player_full_name": "Bob", "url": "...", "division": "East"},
    {"player_full_name": "Charlie", "url": "...", "division": "West"},
    {"player_full_name": "Dave", "url": "...", "division": "North"}
  ]
}

# 正确获取球员列表(加默认空列表避免KeyError)
players = json_response.get("players", [])

# 如果你的球员列表嵌套在`event`字段下,改成下面这行:
# players = json_response.get("event", {}).get("players", [])

# 初始化分组统计字典
division_count = defaultdict(int)

# 遍历球员,按赛区计数
for player in players:
    # 用get方法避免没有division字段时报错,默认归为"Unknown"
    division = player.get("division", "Unknown")
    division_count[division] += 1

# 输出统计结果
print("各赛区球员数量统计:")
for division, count in division_count.items():
    print(f"* {division}: {count} 名球员")

方式二:用普通字典(无需额外导入模块)

如果不想导入collections模块,可以用普通字典实现:

import json

json_response = {
  "players": [
    {"player_full_name": "ghny", "url": "...", "division": "East"},
    {"player_full_name": "Alice", "url": "...", "division": "West"},
    {"player_full_name": "Bob", "url": "...", "division": "East"}
  ]
}

players = json_response.get("players", [])
division_count = {}

for player in players:
    division = player.get("division", "Unknown")
    # 如果赛区不在字典里,初始化为0,再加1
    division_count[division] = division_count.get(division, 0) + 1

# 输出结果
for division, count in division_count.items():
    print(f"{division}: {count}")

运行结果示例

上面的代码运行后会输出类似这样的结果:

各赛区球员数量统计:
* East: 2 名球员
* West: 2 名球员
* North: 1 名球员

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:26:28