问题描述
我一直在尝试使用以下代码将值插入到表中:
top10_strong_beers.values.tolist() =
[['Surly Brewing Company','Abrasive Ale',2020,1],['Modern Times Beer','Blazing World',2],['Sixpoint Craft Ales','Hi-Res',3],['Southern Star Brewing Company','Red Cockaded Ale',4],['Tallgrass Brewing Company','Ethos IPA',5],['Caldera Brewing Company','Hopportunity Knocks IPA',6],['Mike Hess Brewing Company','Habitus (2014)',7],['Oskar Blues Brewery','GUBNA Imperial IPA',8],['Renegade Brewing Company','Redacted Rye IPA',9],['Sockeye Brewing Company','Dagger Falls IPA',10]]
query = """
INSERT INTO strong_beer_competition
(brewery,beer,year,ranking)
VALUES (%s,%s,%s)
"""
cur.executemany(query,top10_strong_beers.values.tolist())
conn.commit()
我收到以下错误:
OperationalError Traceback (most recent call last)
<ipython-input-47-e3e92e2c1d6f> in <module>
11 """
12
---> 13 cur.executemany(query,top10_strong_beers.values.tolist())
14 conn.commit()
OperationalError: near "%": syntax error
我不知道如何解决这个问题。我一直在寻找发生此错误的原因,但它似乎与我查找的其他代码相似。任何人都可以帮忙吗?任何让我更接近解决这个问题的东西都值得赞赏。谢谢。
解决方法
好吧,我在查找另一个问题的解决方案时不小心找到了答案。我应该使用“?”而不是“%s”。
我没有意识到有不同版本的 SQL,而且我显然正在使用使用“?”的 SQLite3。而不是“%s”。希望这能帮助像我这样的其他白痴。