这不是我第一次抓取数据,但确实感觉就好。
import csv
import requests
import os
outfile = open("Labs_StartingGoalies.csv","a",newline='')
writer = csv.writer(outfile)
header=[
"Home_Tm"]
writer.writerow(header)
req = requests.get('https://www.fantasylabs.com/api/lines/4/12-20-2017/startinggoalies')
data = req.json()['GoalieMatchups']
for i, teams in enumerate(data):
for i, team in enumerate(teams['Properties']):
print (team)
输出:
EventId
EventDate
EventDateTime
TimeOfDay
Stadium
HomeTeam
HomeEventTeamId
HomeGoalie
HomeTwitterName
HomePrimarySourceKey
HomeGoalieId
HomeGoalieSalary_DK
HomeGoalieSalary_FD
HomeGoalieStatus
HomeGoalieText
HomeModifiedDate
HomeSourceText
HomeSourceURL
HomeMoneyLine
HomeMoneylineChange
HomeVegasPoints
VisitorTeam
VisitorEventTeamId
VisitorGoalie
VisitorTwitterName
VisitorPrimarySourceKey
VisitorGoalieId
VisitorGoalieSalary_DK
VisitorGoalieSalary_FD
VisitorGoalieStatus
VisitorGoalieText
VisitorModifiedDate
VisitorSourceText
VisitorSourceURL
VisitorMoneyLine
VisitorMoneylineChange
VisitorVegasPoints
下一个代码:
import csv
import requests
import os
outfile = open("Labs_StartingGoalies.csv","a",newline='')
writer = csv.writer(outfile)
header=[
"Home_Tm"]
writer.writerow(header)
req = requests.get('https://www.fantasylabs.com/api/lines/4/12-20-2017/startinggoalies')
data = req.json()['GoalieMatchups']
for i, teams in enumerate(data):
for i, team in enumerate(teams['Properties']):
HomeTeam = team['HomeTeam']
print (HomeTeam)
错误:
File "C:/Python36/Projects/NHL/Labs_Teams.py", line 17, in <module>
HomeTeam = team['HomeTeam']
TypeError: string indices must be integers
这个Json
有点难以阅读。通常我会使用Mozilla
,但它不会以正常方式显示。我想开始从第一个output
的列表中提取数据,但所有不同的尝试都很短。谢谢你看看!
答案 0 :(得分:2)
for循环应修改如下,
for i, teams in enumerate(data):
HomeTeam = teams['Properties']['HomeTeam']
print (HomeTeam)
这将输出
Columbus Blue Jackets
Philadelphia Flyers
Calgary Flames
您不需要内循环,因为teams['Properties']
是字典,而不是列表。
修改:此外,由于您没有使用计数器,因此您不需要枚举数据,这已经是一个列表
for teams in data:
HomeTeam = teams['Properties']['HomeTeam']
print (HomeTeam)
答案 1 :(得分:0)
你有使用枚举的原因吗? 你可能想做这样的事情:
for teams in data:
HomeTeam = teams['Properties']['HomeTeam']
print (HomeTeam)
结果:
Columbus Blue Jackets
Philadelphia Flyers
Calgary Flames