base_url = "https://github.com/statsbomb/open-data/tree/master/data/"
comp_url = base_url + "matches/{}/{}.json"
match_url = base_url + "events/{}.json"
这是包含数据的链接
我使用了一个函数来解析其中不同类型的数据
def parsing_data(comp_id,season_id):
matches = requests.get(url= comp_url.format(comp_id,season_id)).json()
match_ids = [m['match_id'] for m in matches]
for id in match_ids:
events = requests.get(url= match_url.format(id)).json()
shots = [x for x in events if x['type']['name'] == 'Shot']
all_events = []
for s in shots:
attribute = {
'Match_ID' : id,
'Team' : s['possession_team']['name'],
'Player': s['player']['name'],
'Minute': s['minute'],
'X_shot': s['location'][0],
'Y_shot': s['location'][1],
'Shot_with': s['body_part']['name'],
'Outcome': s['outcome']['name']
}
all_events.append(attribute)
return pd.DataFrame(all_events)
但是我得到一个JSONDecodeError:Expecting值:第6行第1列(char 5)当我调用函数时
comp_id = 43
season_id = 3
df = parsing_data(comp_id,season_id)
有人能帮我吗
需要更改
base_url
以获取原始Json内容,而且Shot_with
和Outcome
中存在两个错误此脚本:
印刷品:
您已经获取了GitHub链接,您必须获取GitHub文件原始数据的链接,如
另一件事是,您必须使用
requests.get(url="").content
来检索数据。还有一个是数据主体部分&结果在镜头中
可以使用
json.loads(string)
将其转换为JSON对象然后您可以将代码编写为
多谢各位
相关问题 更多 >
编程相关推荐