我正在尝试让所有可用的玩家获得Yahoo!返回的JSON职位。幻想API,使用此资源:
http://fantasysports.yahooapis.com/fantasy/v2/game/nfl/players;status=A;position=RB
使用此API似乎总是最多返回25名玩家。我也尝试使用;count=n
过滤器,但如果n高于25,我仍然只能获得25名玩家。有人知道为什么吗?我怎么能得到更多?
这是我的代码:
from yahoo_oauth import OAuth1
oauth = OAuth1(None, None, from_file='oauth.json', base_url='http://fantasysports.yahooapis.com/fantasy/v2/')
uri = 'league/nfl.l.91364/players;position=RB;status=A;count=100'
if not oauth.token_is_valid():
oauth.refresh_access_token
response = oauth.session.get(uri, params={'format': 'json'})
答案 0 :(得分:0)
我确实解决了这个问题。我发现的是最大值""是25岁,但是"开始"参数是此操作的关键。似乎API为每个玩家附加一个索引(但是它已被排序)并且"开始"参数是开始的索引。这可能看起来很奇怪,但我能找到的唯一方法是让所有玩家分批返回25.所以我的代码解决方案如下:
from yahoo_oauth import OAuth1
oauth = OAuth1(None, None, from_file='oauth.json', base_url='http://fantasysports.yahooapis.com/fantasy/v2/')
done = False
start = 1
while(not done) :
uri = 'league/nfl.l.<league>/players;position=RB;status=A;start=%s,count=25' % start
if not oauth.token_is_valid():
oauth.refresh_access_token
response = oauth.session.get(uri, params={'format': 'json'})
# parse response, get num of players, do stuff
start += 25
if numPlayersInResp < 25:
done = True