import pandas as pd
url = 'https://site.web.api.espn.com/apis/common/v3/sports/basketball/nba/statistics/byathlete?region=us&lang=en&contentorigin=espn&isqualified=true&page=2&limit=50&sort=offensive.avgPoints%3Adesc'
df = pd.read_json(url)
我一直在尝试将此链接导出到JSON,但出现此错误:
ValueError: arrays must all be same length
点击this link后可以看到数据集。
答案 0 :(得分:0)
主要问题是,JSON并未完全填充每个项目,因此每个项目可以具有不同的长度。
您可以通过仅提取您感兴趣的功能来解决问题。例如:
# imports
import pandas as pd
import requests
# constants
URL = 'https://site.web.api.espn.com/apis/common/v3/sports/basketball/nba/statistics/byathlete?region=us&lang=en&contentorigin=espn&isqualified=true&page=2&limit=50&sort=offensive.avgPoints%3Adesc'
# save data to JSON
r = requests.get(URL)
data = r.json()
# extract only some features
df = pd.DataFrame(
[
{
'id': item['athlete']['id'],
'uid': item['athlete']['uid'],
'firstName': item['athlete']['firstName'],
'lastName': item['athlete']['lastName'],
}
for item in data['athletes']
]
)
# print result
print(df.head())
id uid firstName lastName
0 3133601 s:40~l:46~a:3133601 Devonte' Graham
1 3112335 s:40~l:46~a:3112335 Nikola Jokic
2 3133628 s:40~l:46~a:3133628 Myles Turner
3 3917376 s:40~l:46~a:3917376 Jaylen Brown
4 4277811 s:40~l:46~a:4277811 Collin Sexton