在列表中选择特定的统计信息

2024-09-30 08:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的是一个编程新手,我只想从运行这个api的代码中提取3行代码。来自nhl.com:

import requests
import lxml.html
from pprint import pprint
from sys import exit
import json
import csv

url = "https://api.nhle.com/stats/rest/team?isAggregate=false&reportType=basic&isGame=false&reportName=penaltykill" \
      "&sort=[{%22property%22:%22homePkPctg%22," \
      "%22direction%22:%22DESC%22}]&cayenneExp=leagueId=133%20and%20gameTypeId=2%20and%20seasonId%3E=20192020%20and" \
      "%20seasonId%3C=20192020 "

resp = requests.get(url).text
resp = json.loads(resp)

pprint(resp['data'])

我得到了所有31支球队的以下结果(我只是在这里和蒙特一起展示)é加拿大):

{'gamesPlayed': 23, 'homeGamesPlayed': 12, 'homePkPctg': 0.7352, 'homePpGoalsAgainst': 9, 'homeShNumTimes': 34, 'losses': 7, 'otLosses': 5, 'pkPctg': 0.7361, 'points': 27, 'ppGoalsAgainst': 19, 'roadGamesPlayed': 11, 'roadPkPctg': 0.7368, 'roadPpGoalsAgainst': 10, 'roadShNumTimes': 38, 'seasonId': 20192020, 'shGoalsFor': 1, 'shNumTimes': 72, 'teamAbbrev': 'MTL', 'teamFullName': 'Montréal Canadiens', 'teamId': 8, 'ties': 0, 'wins': 11},

基本上我只需要'homePkPctg'/'roadPkPctg'/'teamAbbrev'行

我真的觉得这对这里的大多数人来说都很简单,但我在这里被封锁了几个小时。所以我来了

提前谢谢


Tags: 代码fromimportcomapijsonfalseurl
1条回答
网友
1楼 · 发布于 2024-09-30 08:26:29

加载json时得到的是一个字典列表。因此,对于列表中的每一项,您可以执行以下操作:

# lets say we call it team_data
team_data = resp['data']

# "entry" here is assumed to be a dictionary like the one you show
# for the Montréal Canadiens
for entry in team_data:
    print(entry['homePkPctg'])
    print(entry['roadPkPctg'])
    print(entry['teamAbbrev'])

您的“行”是字典键,可以如上所示访问。对于您的情况可能不完全正确,始终取决于json文件/数据

如果您分别为每个团队运行一个fetch,您可以

team_data['homePkPctg']
team_data['roadPkPctg']
team_data['teamAbbrev']

相反

相关问题 更多 >

    热门问题