我在调用的api中有一个动态行范围。我已经研究了while循环的一些以前的用法,但是我似乎不知道如何将这个脚本中的for循环换成while循环。你知道吗
header = ["fanduel", "fd_first_name", "fd_last_name", "fd_player_salary", "draftkings", "dk_first_name", "dk_last_name", "dk_player_salary"]
headers = {
"Authorization": "Basic " +
base64.b64encode('{}:{}'.format(USERNAME,PASSWORD)\
.encode('utf-8')).decode('ascii')
}
with open("dailydfs.csv", 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(header)
for fordate in range(20171215,20171216): #ENTER DATE'S
req = requests.get(url="https://api.mysportsfeeds.com/v1.1/pull/nhl/2017-2018-regular/daily_dfs.json?fordate=" + str(fordate) , headers=headers)
req.raise_for_status()
data = req.json()
daily_dfs = data['dailydfs']
fanduel = daily_dfs['dfsEntries'][0]['dfsType']
draftkings = daily_dfs['dfsEntries'][1]['dfsType']
for i in range(20):
fd_player = daily_dfs['dfsEntries'][0]['dfsRows'][i]['player']
salary_fd = daily_dfs['dfsEntries'][0]['dfsRows'][i]
fd_last_name = fd_player['LastName']
fd_first_name = fd_player['FirstName']
fd_player_salary = salary_fd['salary']
dk_player = daily_dfs['dfsEntries'][1]['dfsRows'][i]['player']
salary_dk = daily_dfs['dfsEntries'][1]['dfsRows'][i]
dk_last_name = dk_player['LastName']
dk_first_name = dk_player['FirstName']
dk_player_salary = salary_dk['salary']
writer.writerow([fanduel, fd_first_name, fd_last_name, fd_player_salary, draftkings, dk_first_name, dk_last_name, dk_player_salary])
print(fanduel, fd_first_name, fd_last_name, fd_player_salary, draftkings, dk_first_name, dk_last_name, dk_player_salary)
输出:
FanDuel Jonathan Quick 8800 DraftKings Martin Jones 8400
FanDuel Henrik Lundqvist 8600 DraftKings Aaron Dell 8300
FanDuel Frederik Andersen 8500 DraftKings Frederik Andersen 8200
FanDuel Martin Jones 8500 DraftKings Curtis McElhinney 8100
FanDuel Ben Bishop 8500 DraftKings Cory Schneider 7900
FanDuel Cory Schneider 8200 DraftKings Tyler Seguin 7800
在假定
daily_dfs['dfsEntries'][0]['dfsRows']
和daily_dfs['dfsEntries'][1]['dfsRows']
具有相同数量的元素的情况下,可以枚举第一个元素,并在获取第二个元素时使用索引,即相关问题 更多 >
编程相关推荐