无法从 python 向 sql table 插入多行

Unable to insert multiple rows to sql table from python

即使我将列表作为参数传递,我在执行查询时仍收到以下错误

TypeError: ('Params must be in a list, tuple, or Row', 'HY000')

我正在尝试使用 executemany

将多行传递给 sql table

请在下面找到我的代码并提供帮助,我是 python 的新手。

query = """INSERT INTO TableTest (Summary) Values (%s)"""
val = [('SPHXNORF2ASW1'),('CHNSIRSDB1USAA'),('NKOLGTPRAVPNVM'),('STAMHO3WANCEG'),('SPHXNORWANCEG1'),('SPHXNORWANCE'),('STAMHO3WANCEG')]
       
     
                 
      
cursor = conn.cursor()

cursor.executemany(query,val)

conn.commit()   ```

在 python 中,将值放入 '()' 不会使其成为元组。 所以,这段代码

val = [('SPHXNORF2ASW1'),('CHNSIRSDB1USAA'),('NKOLGTPRAVPNVM'),('STAMHO3WANCEG'),('SPHXNORWANCEG1'),('SPHXNORWANCE'),('STAMHO3WANCEG')]
    

将转换为

['SPHXNORF2ASW1', 'CHNSIRSDB1USAA', 'NKOLGTPRAVPNVM', 'STAMHO3WANCEG', 'SPHXNORWANCEG1', 'SPHXNORWANCE', 'STAMHO3WANCEG']

如果要将其指定为元组,请像下面这样添加尾随逗号或使用 '[]' 代替元组。

使用:

val = [('SPHXNORF2ASW1',),('CHNSIRSDB1USAA',),('NKOLGTPRAVPNVM',),('STAMHO3WANCEG',),('SPHXNORWANCEG1',),('SPHXNORWANCE',),('STAMHO3WANCEG',)]

或:

[ ['SPHXNORF2ASW1'], ['CHNSIRSDB1USAA'], ['NKOLGTPRAVPNVM'], ['STAMHO3WANCEG'], ['SPHXNORWANCEG1'], ['SPHXNORWANCE'], ['STAMHO3WANCEG']]