我正在尝试将来自Web API的数据插入到我的数据库中(我在python 3.7.2上使用sqlite3),但找不到任何有关此操作的教程。到目前为止,我所有的代码是:
import requests, sqlite3
database = sqlite3.connect("ProjectDatabase.db")
cur = database.cursor()
d = requests.get("http://ergast.com/api/f1/2019/drivers")
我的目标是获取每个驱动程序的名称和驱动程序编号,并将它们全部插入到名为Drivers的表中。 (我还使用了更多的API和更多的表,但是如果我想出一种方法,那么其余的应该没问题。)我假设我必须做类似的事情
cur.execute('''INSERT INTO Drivers VALUES(?,?), (driverName, driverNumber)
''')
但是我正在努力弄清楚如何将数据直接从网站插入表中。有谁知道如何做到这一点?谢谢
答案 0 :(得分:2)
正如OP中评论部分所述,问题似乎在于如何解析API点。
d = requests.get("http://ergast.com/api/f1/2019/drivers.json")
d = d.json()
drivers = d["MRData"]["DriverTable"]["Drivers"]
该问题的答案将是访问该API提供的所有驱动程序。
要将条目添加到数据库中,可以使用以下命令:
for dr in drivers:
name = dr["familyName"]
number = dr["permanentNumber"]
sql = 'INSERT INTO Drivers (name,number) VALUES(?,?)'
val = (name,number)
cur.execute(sql,val)
使用此解决方案,您无需使用指定索引即可直接访问您感兴趣的参数。