在这篇文章中,我介绍了如何从 stats.nba.com 上现场实况运动动画中提取一些额外的信息。
In [1]:
| 12345678910 | import requestsimport pandas as pdimport numpy as np %matplotlib inline import matplotlib.pyplot as pltimport seaborn as sns from IPython.display import IFrame |
In [2]:
| 12 | sns.set_color_codes()sns.set_style(\”white\”) |
我们将会提取季后赛快船和火箭系列赛第 5 场比赛中一个回合的信息。在那个回合中,James Harden 突破到篮下,撕破快船的防守,然后传球给 Trevor Ariza,后者投入一个空位 3 分球。
我按照下面的方法嵌入运动动画。
In [3]:
| 12 | IFrame(\’http://stats.nba.com/movement/#!/?GameID=0041400235&GameEventID=308\’, width=700, height=400) |
Out[3]:
通过下面的 URL,我们可以连接从 stats.nba.com API 得到的数据。在 URL 中有两个参数。eventid 是这个特定回合的 ID 号。gameid 是这场季后赛的 ID 号。
In [4]:
| 1 | url = \”http://stats.nba.com/stats/locations_getmoments/?eventid=308&gameid=0041400235\” |
下面将会使用 requests 来获取数据
In [5]:
| 12345 | # Get the webpageresponse = requests.get(url)# Take a look at the keys from the dict# representing the JSON dataresponse.json().keys() |
Out[5]:
| 1 | dict_keys([\’visitor\’, \’gamedate\’, \’moments\’, \’gameid\’, \’home\’]) |
我们想要的数据可以在 home(主场球员的数据)、visitors(客场球员的数据)和 moments(包含上面用来绘制球员运动动画信息的数据)中找到。
In [6]:
| 123456 | # A dict containing home players datahome = response.json()[\”home\”]# A dict containig visiting players datavisitor = response.json()[\”visitor\”]# A list containing each momentmoments = response.json()[\”moments\”] |
下面看一下字典 home 包含的信息。
In [7]:
| 1 | home |
Out[7]:
| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | {\’abbreviation\’: \’HOU\’, \’name\’: \’Houston Rockets\’, \’players\’: [{\’firstname\’: \’Trevor\’, \’jersey\’: \’1\’, \’lastname\’: \’Ariza\’, \’playerid\’: 2772, \’position\’: \’F\’}, {\’firstname\’: \’Nick\’, \’jersey\’: \’3\’, \’lastname\’: \’Johnson\’, \’playerid\’: 203910, \’position\’: \’G\’}, {\’firstname\’: \’Josh\’, \’jersey\’: \’5\’, \’lastname\’: \’Smith\’, \’playerid\’: 2746, \’position\’: \’F\’}, {\’firstname\’: \’Terrence\’, \’jersey\’: \’6\’, \’lastname\’: \’Jones\’, \’playerid\’: 203093, \’position\’: \’F\’}, {\’firstname\’: \’Joey\’, \’jersey\’: \’8\’, \’lastname\’: \’Dorsey\’, \’playerid\’: 201595, \’position\’: \’C-F\’}, {\’firstname\’: \’Pablo\’, \’jersey\’: \’9\’, \’lastname\’: \’Prigioni\’, \’playerid\’: 203143, \’position\’: \’G\’}, {\’firstname\’: \’Dwight\’, \’jersey\’: \’12\’, \’lastname\’: \’Howard\’, \’playerid\’: 2730, \’position\’: \’C\’}, {\’firstname\’: \’James\’, \’jersey\’: \’13\’, \’lastname\’: \’Harden\’, \’playerid\’: 201935, \’position\’: \’G\’}, {\’firstname\’: \’Clint\’, \’jersey\’: \’15\’, \’lastname\’: \’Capela\’, \’playerid\’: 203991, \’position\’: \’C\’}, {\’firstname\’: \’Kostas\’, \’jersey\’: \’16\’, \’lastname\’: \’Papanikolaou\’, \’playerid\’: 203123, \’position\’: \’F\’}, {\’firstname\’: \’Jason\’, \’jersey\’: \’31\’, \’lastname\’: \’Terry\’, \’playerid\’: 1891, \’position\’: \’G\’}, {\’firstname\’: \’KJ\’, \’jersey\’: \’32\’, \’lastname\’: \’McDaniels\’, \’playerid\’: 203909, \’position\’: \’G-F\’}, {\’firstname\’: \’Corey\’, \’jersey\’: \’33\’, \’lastname\’: \’Brewer\’, \’playerid\’: 201147, \’position\’: \’G-F\’}], \’teamid\’: 1610612745} |
visitor 字典包含了同类信息,不过它是关于快船队的信息。
In [8]:
| 1 | visitor |
Out[8]:
下一篇:从头开始实现神经网络:入门