2016-10-27 2 views
1

Yahoo!에서 반환 한 JSON을 사용하여 위치에 사용할 수있는 모든 플레이어를 얻으려고합니다. 이 리소스를 사용하는 Fantasy API :Yahoo! 판타지 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

:

여기 내 코드입니다. 내가 찾은 것은 최대 "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