雅虎幻想API最大数量?

时间:2016-10-27 02:42:05

标签: python json oauth yahoo-api

我正在尝试让所有可用的玩家获得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'})

1 个答案:

答案 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