Python 如何解决execute()不接受关键字参数的问题

Python 如何解决execute()不接受关键字参数的问题,python,python-3.9,Python,Python 3.9,我想用这些python 3脚本将数据插入数据库表 cursor = db.cursor() sql = "INSERT INTO customers (name, address) VALUES (%s, %s)" values = [ ("Doni", "Jakarta"), ("Ella", "Surabaya"), ("Fani", "Bandung

我想用这些python 3脚本将数据插入数据库表

cursor = db.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
values = [
  ("Doni", "Jakarta"),
  ("Ella", "Surabaya"),
  ("Fani", "Bandung"),
  ("Galih", "Depok")
]

for val in values:
  cursor.execute(sql, params=val)

db.commit()

print("{} data ditambahkan".format(cursor.rowcount))

但我得到了错误类型“TypeError:execute()不接受关键字参数”。是否有人可以帮助解决此错误?

您可以直接以列表的形式传递查询和值

cursor = db.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
values = [
("Doni", "Jakarta"),
("Ella", "Surabaya"),
("Fani", "Bandung"),
("Galih", "Depok")
]

for val in values:
    cursor.execute(sql, list(val))

db.commit()

print("{} data ditambahkan".format(cursor.rowcount))
或者可以使用ExecuteMy一次插入所有值

cursor = db.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
values = [
("Doni", "Jakarta"),
("Ella", "Surabaya"),
("Fani", "Bandung"),
("Galih", "Depok")
]

cursor.executemany(sql, values)

db.commit()

print("{} data ditambahkan".for

感谢您的评论,我尝试了您的脚本,但仍然有错误,新的错误是“pyodbc.ProgrammingError:(“SQL包含0个参数标记,但提供了2个参数”,“HY000”)”,我尝试了executemany,但仍然有错误。您使用的是pyodbc,这是为MySQL运行的。我认为您也需要更改查询。请参考我看到的参考链接,谢谢你的建议。最后,脚本运行良好,正如您所说,我必须更改SQL的查询。