因此,我试图从此API抓取一个表:
https://api.pbpstats.com/get-wowy-combination-stats/nbaTeamId=1610612743&Season=201819&SeasonType=Playoffs&PlayerIds=203999,1627750,200794
但是对于我的最终数据框,我很难将标头作为一个像['Players On', 'Players Off', 'Minutes', 'NetRtg', 'OffRtg', 'DefRtg']
这样的好列表,因为标头是它们自己的类,而不是其他类results
的一部分。
我当前的代码如下:
import requests
url = 'https://api.pbpstats.com/get-wowy-combination-stats/nba?TeamId=1610612743&Season=2018-19&SeasonType=Playoffs&PlayerIds=203999,1627750,200794'
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
# grab table
table = response.json()['results'][0]
#grab headers
headers = response.json()['headers']
当我print(headers)
得到[{'field': 'On', 'label': 'Players On'}, {'field': 'Off', 'label': 'Players Off'}, {'field': 'Minutes', 'label': 'Minutes', 'type': 'number'}, {'field': 'NetRtg', 'label': 'NetRtg', 'type': 'decimal'}, {'field': 'OffRtg', 'label': 'OffRtg', 'type': 'decimal'}, {'field': 'DefRtg', 'label': 'DefRtg', 'type': 'decimal'}]
时。
这是将它们放入['Players On', 'Players Off', 'Minutes', 'NetRtg', 'OffRtg', 'DefRtg']
这样的列表中的好方法,这样我就可以创建一个数据框了。
谢谢!
答案 0 :(得分:2)
只需从["value1","value2"]
列表中提取具有特定键的所有值
然后制作你的字典
headers
输出看起来像
import requests
url = 'https://api.pbpstats.com/get-wowy-combination-stats/nba?TeamId=1610612743&Season=2018-19&SeasonType=Playoffs&PlayerIds=203999,1627750,200794'
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
#grab table
table = response.json()['results'][0]
#grab headers
headers = response.json()['headers']
#Extracting all values with every key into a dictionary
results = {}
for header in headers:
for k,v in header.items():
results.setdefault(k,[])
results[k].append(v)
#Remove duplicate elements from the list of values
results = {k:list(set(v)) for k,v in results.items()}
print(results)
答案 1 :(得分:1)
列表理解以进行迭代应该可以解决问题:
heroku run python manage.py migrate