如何从NHL比赛数据Dict中提取目标球队的得分?
如何从NHL比赛数据字典中提取特定球队的得分?
别慌,这事儿其实没那么复杂,咱们一步步拆解这个数据结构,轻松拿到你要的得分。
首先,先理清你的数据结构逻辑:
- 整个字典的核心比赛数据藏在
dates数组里,每个dates元素对应一个日期的比赛集合 - 每个日期下的
games数组就是当天的所有比赛,每场比赛的teams字段包含了主场(home)和客场(away)球队的完整信息,其中team['name']是球队名称,score就是该队的得分
通用解决方案(支持多日期、多场比赛)
下面用Python写个通用的提取逻辑,不管有多少场比赛都能找到目标球队的得分:
# 把你的NHL比赛数据存到这个变量里 nhl_data = { # 这里粘贴你原始的字典内容 } # 定义你要找的目标球队 target_team = "Vegas Golden Knights" team_score = None # 遍历所有日期的比赛条目 for date_entry in nhl_data['dates']: # 遍历该日期下的每一场比赛 for game in date_entry['games']: # 先检查主场球队是不是目标队 if game['teams']['home']['team']['name'] == target_team: team_score = game['teams']['home']['score'] break # 找到就退出比赛循环 # 再检查客场球队 elif game['teams']['away']['team']['name'] == target_team: team_score = game['teams']['away']['score'] break if team_score is not None: break # 找到就退出日期循环 # 输出结果 if team_score is not None: print(f"{target_team} 的得分是: {team_score}") else: print(f"没找到 {target_team} 的比赛数据哦")
单场比赛简化写法
如果你的数据里只有一场比赛(比如示例里的情况),可以直接定位,不用循环:
# 直接取第一场比赛的数据 game = nhl_data['dates'][0]['games'][0] if game['teams']['home']['team']['name'] == target_team: team_score = game['teams']['home']['score'] elif game['teams']['away']['team']['name'] == target_team: team_score = game['teams']['away']['score'] print(f"{target_team} 的得分是: {team_score}")
小提示
- 一定要保证球队名称的拼写完全匹配(包括大小写、空格),不然会找不到数据
- 如果需要提取目标球队所有比赛的得分,别用
break,把得分追加到一个列表里就行,比如scores.append(team_score)
内容的提问来源于stack exchange,提问作者Jacob Windolf
相关产品推荐
相关产品推荐

