主要问题是,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