Здесь вы go приятель, хотя вы читаете все данные, вы не сохраняете их в виде списка, вы все еще пытаетесь импортировать данные (как json) в фрейм данных, и это не сработает . Я создал несколько списков, чтобы вы могли сохранять значения по отдельности, а затем вставлять их в виде столбцов, пожалуйста, проверьте, правильно ли я понял проблему, под кодом.
import json
from urllib.request import urlopen
import pandas as pd
tid_list = []
pid_list = []
stats_list = []
stats_id_list = []
name_list = []
tValue_list = []
for n in range(20,22,1):
if n < 10:
week = '00'+str(n)
else:
week = '0'+str(n)
with urlopen('https://statdata.pgatour.com/r/'+week+'/2020/player_stats.json') as response:
source = response.read()
data = json.loads(source)
tid = data['tournament']['tournamentNumber']
for item in data['tournament']['players']:
try:
pid = item['pid']
tid_list.append(tid)
pid_list.append(pid)
stats = item['stats']
i=0
for stat in stats:
if i > 0:
pid_list.append(pid)
tid_list.append(tid)
statId = stat['statId']
stats_id_list.append(statId)
name = stat['name']
name_list.append(name)
tValue = stat['tValue']
tValue_list.append(tValue)
i+=1
print(tid, pid, statId, name, tValue)
except Exception as e:
break
#print(data)
df = pd.DataFrame(data={'tid':tid_list,'pid':pid_list,'statsId':stats_id_list,'name':name_list,'tValue':tValue_list})#, columns = ['tid', 'pid', 'statId', 'name', 'tValue'])
print(df)
вывод:
tid pid statsId name tValue
0 021 40026 106 Eagles 0
1 021 40026 107 Birdies 22
2 021 40026 523 Pars 44
3 021 40026 184 Bogeys 5
4 021 40026 520 Doubles 1