Python 在列表中选择特定的统计信息
我真的是一个编程新手,我只想从运行此api代码中提取3行代码。这是来自nhl.com的:Python 在列表中选择特定的统计信息,python,text,statistics,extract,Python,Text,Statistics,Extract,我真的是一个编程新手,我只想从运行此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&a
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,
“HomeppGoalsCountry”:9,
《家庭时报》:34,
"损失":7,,
“损失”:5,
“pkPctg”:0.7361,
"点":27,,
“PPGoalsanth”:19,
“道路游戏展开”:11,
“roadPkPctg”:0.7368,
“roadppgoalsanth”:10,
“roadShNumTimes”:38,
“季节ID”:20192020,
“shGoalsFor”:1,
“shNumTimes”:72,
“teamAbbrev”:“MTL”,
“teamFullName”:“Montréal-Canadiens”,
“团队ID”:8,
“关系”:0,
“胜利”:11}
基本上,我只需要“homePkPctg”/“roadPkPctg”/“teamAbbrev”行
我真的觉得这对这里的大多数人来说都很简单,但我在这里被封锁了几个小时。我来了
提前谢谢 加载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']
相反。因此,如果我没有弄错,我应该用team_data=resp['data']替换pprint(resp['data'])对于团队_数据中的条目:打印(条目['homePkPctg'])打印(条目['roadPkPctg'])打印(条目['teamAbbrev'])或者我只是在pprint(resp['data'])之前将其滑入?您需要/想要打印值吗?您还可以执行
resp['data']['teamAbbrev']
(例如)来访问字典键“teamAbbrev”的值。我猜您不需要for循环。最后,我只需要将这3个键发送到Excel工作表中。但目前,我想在Pycharm控制台中打印结果,以查看在将其发送到Excel文档之前得到的结果。我需要看到它产生了什么,才能更好地理解它。我的方法对你有帮助吗?我想,你必须一直尝试,直到你做对为止。它做到了!一切似乎都很顺利。。。thanx很多。。。。这仍然是一个正在进行的工作,所以机会是相当好的,我需要再次建议。。。。