我已经设法将数据与其他表一起输入到该数据库中,但是,当我尝试将数据插入Races表中时,这给了我一个错误。
我看了一下我正在使用的API,它将显示在Races表中,而Races表中还有一个单独的表,称为Circuit,这似乎是我的问题所在。我想同时从Races和Circuit表中获取数据,并将其添加到数据库中。
这是我对此特定表的代码:
r = requests.get("https://ergast.com/api/f1/current.json") ## RACE SCHEDULE
r = r.json()
races = r["MRData"]["RaceTable"]["Races"]
#circuit = r["MRData"]["RaceTable"]["Races"]["Circuit"]
for ra in races:
rname = ra["raceName"]
#for ci in circuit:
tname = ra["circuitName"]
rdate = ra["date"]
cur.execute('''INSERT INTO Races(raceName, trackName, raceDate)
VALUES (?, ?, ?)''', (rname, tname, rdate))
database.commit()
print("done")
我希望先添加数据,然后完成打印,但是错误似乎出在电路部分,它引发以下错误:
File "E:\grace\SCHOOL\PROJECT\APIPractice.py", line 41, in <module>
tname = ra["circuitName"]
KeyError: 'circuitName'
我试图更改各种变量名,但是每次它给我一个错误(不一定是这个错误)。有人可以帮助吗?谢谢。
答案 0 :(得分:0)
在circuitName
中没有直接命名为r["MRData"]["RaceTable"]["Races"]
的密钥。
circuitName
在您的json中还有一个名为Circuit
的密钥。您需要更改tname
tname = ra['Circuit']["circuitName"]