SQL OperationalError: near "%": syntax error when using inserting values into a table with "executemany"

SQL OperationalError: near "%": syntax error when using inserting values into a table with "executemany"

我一直在尝试使用以下代码将值插入 table:

top10_strong_beers.values.tolist() =
[['Surly Brewing Company', 'Abrasive Ale', 2020, 1],
 ['Modern Times Beer', 'Blazing World', 2020, 2],
 ['Sixpoint Craft Ales', 'Hi-Res', 2020, 3],
 ['Southern Star Brewing Company', 'Red Cockaded Ale', 2020, 4],
 ['Tallgrass Brewing Company', 'Ethos IPA', 2020, 5],
 ['Caldera Brewing Company', 'Hopportunity Knocks IPA', 2020, 6],
 ['Mike Hess Brewing Company', 'Habitus (2014)', 2020, 7],
 ['Oskar Blues Brewery', 'GUBNA Imperial IPA', 2020, 8],
 ['Renegade Brewing Company', 'Redacted Rye IPA', 2020, 9],
 ['Sockeye Brewing Company', 'Dagger Falls IPA', 2020, 10]]


query = """
INSERT INTO strong_beer_competition
    (brewery,beer,year,ranking)
     VALUES (%s,%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”。希望这能帮助像我这样的白痴。