第一次在这里发帖,但我用一些代码从ESPN中获取梦幻足球数据时遇到了问题。我从Steven Morse的博客(https://stmorse.github.io/journal/espn-fantasy-v3.html)上下载了这篇文章,除了我得到的一个错误外,它似乎还可以工作。错误是:
File "<ipython-input-65-56a5896c1c3c>", line 3, in <listcomp>
game['away']['teamId'], game['away']['totalPoints'],
KeyError: 'away'
我查了字典,发现“away”在里面。我不明白的是为什么“家”有效,而不是“走”。这是我正在使用的代码。感谢您的帮助:
import requests
import pandas as pd
url = 'https://fantasy.espn.com/apis/v3/games/ffl/seasons/2020/segments/0/leagues/721579?view=mMatchupScore'
r = requests.get(url,
cookies={"swid": "{1E653FDE-DA4A-4CC6-A53F-DEDA4A6CC663}",
"espn_s2": "AECpfE9Zsvwwsl7N%2BRt%2BAPhSAKmSs%2F2ZmQVuHJeKG8LGgLBDfRl0j88CvzRFsrRjLmjzASAdIUA9CyKpQJYBfn6avgXoPHJgDiCqfDPspruYqHNENjoeGuGfVqtPewVJGv3rBJPFMp1ugWiqlEzKiT9IXTFAIx3V%2Fp2GBuYjid2N%2FFcSUlRlr9idIL66tz2UevuH4F%2FP6ytdM7ABRCTEnrGXoqvbBPCVbtt6%2Fu69uBs6ut08ApLRQc4mffSYCONOqW1BKbAMPPMbwgCn1d5Ruubl"})
d = r.json()
df = [[
game['matchupPeriodId'],
game['away']['teamId'], game['away']['totalPoints'],
game['home']['teamId'], game['home']['totalPoints']
] for game in d['schedule']]
df = pd.DataFrame(df, columns=['Week', 'Team1', 'Score1', 'Team2', 'Score2'])
df['Type'] = ['Regular' if w<=14 else 'Playoff' for w in df['Week']]
似乎赛程中的一些比赛没有客场球队:
对于像这样的嵌套json数据,使用
pandas.json_normalize
通常更容易,这会使数据结构变得平坦,并为您提供一个数据框架,其中包含许多名为home.cumulativeScore.losses
等的列然后,您可以通过删除不关心的列等方式重塑数据帧
对于没有客场球队的比赛,熊猫队将用NaN值填充这些列
相关问题 更多 >
编程相关推荐