将statsbomb json数据解析为csv的python包

statsbomb的Python项目详细描述


statsbomb json解析器

PyPI versionPyPI - Python VersionBuild StatuscodecovHitCount

StatsBomb发布的竞赛/比赛/阵容/赛事json数据转换为易于使用的csv格式。

可以找到这个包的一个简单的web界面here

安装

$ pip install statsbomb

示例用法

  • 正在分析competitions.json文件:
importstatsbombassbcomps=sb.Competitions()print(len(comps))# 3json_data=comps.data# underlying json datadf=comps.get_dataframe()print(df)
competition_idcompetition_namecountry_namematch_availablematch_updatedseason_idseason_name
37FA Women's Super LeagueEngland2018-09-08T07:33:39.3563402018-09-08T07:33:39.35634012017/2018
43FIFA World CupInternational2018-09-08T07:33:39.3563402018-09-08T14:30:04.35651432018
49NWSLUnited States of America2018-09-08T07:33:39.3563402018-09-08T07:33:39.35634032018
  • 分析匹配的json文件:
importstatsbombassbmatches=sb.Matches(event_id='11',season_id='37')df=matches.get_dataframe()print(len(df))# 7
  • 分析事件json文件以提取快照:
importstatsbombassbevents=sb.Events(event_id='8658')df=events.get_dataframe(event_type='shot')print(len(df))# 23print(df)
event_typeidindexperiodtimestampminutesecondpossessionpossession_teamplay_patternoff_camerateamplayerpositiondurationunder_pressurestatsbomb_xgkey_pass_idbody_parttypeoutcometechniquefirst_timefollows_dribbleredirectone_on_oneopen_goaldeflectedstart_location_xstart_location_yend_location_xend_location_yend_location_z
shotc3ffbb5f-d836-4d33-a02a-3a994990d253577100:20:51.227205139CroatiaFrom Free KickFalseCroatiaDomagoj VidaLeft Center Back1.0130.05478843baafd0a9-1031-46df-82a2-16538d6e94cfHeadOpen PlayOff TNormal112.049.0119.036.74.7
shotd7a727de-1b60-47c7-b9fa-10948bb730ed634100:23:34.907233445CroatiaFrom Free KickFalseCroatiaIvan RakitićLeft Center Midfield2.0530.043759829cc48e31-5a52-4074-97b1-5c3eafdd753dLeft FootOpen PlayOff TVolley108.029.0120.046.96.1
shot20bcdb94-9507-4bed-8315-edddcbb84081736100:27:53.880275353CroatiaFrom Free KickFalseCroatiaIvan PerišićLeft Wing0.5870.1217227890fdf286-3e32-4646-bcb1-a83a7d51593fLeft FootOpen PlayGoalHalf VolleyTrueTrue105.032.0120.043.30.7
...................................................................................................
  • 将数据保存到csv:
importstatsbombassbevents=sb.Events(event_id='8658')events.save_data(event_type='shot')# outputs a file named events_8658_shot.csv

贡献

复制回购:

git clone https://github.com/imrankhan17/statsbomb-parser.git
cd statsbomb-parser

创建虚拟环境:

python -m venv env
source env/bin/activate
pip install -r requirements.txt

或使用Docker:

docker build -t statsbomb-parser .

要在本地运行ci管道,请在.travis.yml文件的script部分执行命令。或使用Docker:

docker run -it --rm -v $(pwd):/home -w /home statsbomb-parser python -m pycodestyle --max-line-length=119 statsbomb tests *.py
docker run -it --rm -v $(pwd):/home -w /home statsbomb-parser python -m pylint statsbomb tests *.py
docker run -it --rm -v $(pwd):/home -w /home statsbomb-parser python -m pytest --disable-pytest-warnings --cov=statsbomb --cov-report=html --durations=5 tests/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多次调用预期方法的java捕获参数(EasyMock)   java我试图得到某个学生的平均值,但它将所有值相加   使用Java更新文件中所有出现的字符串   java从依赖包导入Spring配置(*.xml)   在Java中,如何从不同的偏移量读取大块的字符串文件?   java 安卓 studio未在windows 8中运行   java getResourceAsStream()不读取任何内容   java Google Collections 1.0是否已经专业化?   模型视图控制器ASP。NET母版页在Java中的等效性   计时器TimerTask类在java中只能运行一次   多级继承和foreach Java循环   excel csv到xsl java,有一列带有某种货币(如$400)   java在来电时多次更改BlackBerry的callIncoming()   java通过JNLP启动JavaFX2.0应用程序会引发异常