我试图向MSSQL实例写入(我可以读得很好)值。我的代码类似于:
import pypyodbc
lst = ['val1', 'val2', 'val3']
connection = pypyodbc.connect(...)
cursor = connection.cursor()
cursor.executemany("INSERT INTO table (a, b, c)VALUES(?,?,?)", lst)
返回:参数必须在列表中,元组。我已经阅读了类似帖子,建议尝试lst = list([' val1,' val2',val3']) 但是这会返回:list()最多需要1个参数(给定3个) 我也尝试过cursor.execute()的变种,但是同样的问题。
答案 0 :(得分:2)
请注意cursor.execute
:
.execute ( operation [, parameters ])
参数可以作为序列或映射提供,并将绑定到操作中的变量。
.executemany ( operation , seq_of_parameters )
准备数据库操作(查询或命令),然后对序列中找到的所有参数序列或映射执行 seq_of_parameters。
因此,如果您仅针对一个值设置执行查询,请按以下方式调用:
values = ['val1', 'val2', 'val3']
cursor.executemany("INSERT INTO table (a, b, c) VALUES (?,?,?)", [values])
或者,对于多组值:
values1 = ['val1', 'val2', 'val3']
values2 = ['val3', 'val2', 'val1']
cursor.executemany("INSERT INTO table (a, b, c) VALUES (?,?,?)", [values1, values2])