2016-10-27 2 views
1

Yahoo!から返されたJSONを使用しているプレイヤーをすべて取得しようとしていますこのリソースを使用したファンタジーAPIは、:それは、常にこのAPIを使用して25人の選手の最大値を返すようにYahoo!ファンタジーAPIの最大数?

http://fantasysports.yahooapis.com/fantasy/v2/game/nfl/players;status=A;position=RB 

に思えます。私も;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

は、ここに私のコードです。私が見つけたのは、最大の "count"は25ですが、 "start"パラメータがこの操作の鍵です。 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