将Python列表插入Mysql时出错

将Python列表插入Mysql时出错,python,mysql,Python,Mysql,有一个示例Python列表,如下所示: data = [ ('Jane','dffd','sdas','sdas'), ('Jane','dffd','sdas','sdas'), ('Jane','dffd','sdas','sdas') ] import MySQLdb as my db = my.connect() cursor = db.cursor() data = [ ('Jane','dffd','sdas','sdas'), ('Jane','dffd','sdas','

有一个示例Python列表,如下所示:

data = [
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas')
]
import MySQLdb as my

db = my.connect()

cursor = db.cursor()

data = [
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas')
]

ddt = str(data)

cursor.executemany('INSERT into test VALUES(%s, %s, %s,%s)' %  ddt)

db.commit()  

db.close()
尝试将此列表插入到表名为“test”的My Sql数据库中,如下所示:

data = [
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas')
]
import MySQLdb as my

db = my.connect()

cursor = db.cursor()

data = [
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas')
]

ddt = str(data)

cursor.executemany('INSERT into test VALUES(%s, %s, %s,%s)' %  ddt)

db.commit()  

db.close()
获取一个错误,说明:

not enough arguments for format string
表包含4列:test1、test2、test3、test4。我知道我在某个地方犯了一个愚蠢的错误,但似乎找不到它。

试试这个:

cursor.executemany('INSERT into test VALUES(%s, %s, %s,%s)',data)


完整代码可以是以下类型::

import MySQLdb
import MySQLdb.cursors
encoding = "utf8mb4"
db = MySQLdb.connect(
    host='',
    user='',
    passwd='',
    db='',
    compress=1,
    port=,
    charset='utf8mb4',
    use_unicode=True,
)
cursor = db.cursor()
data = [
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas'),
('Jane','dffd','sdas','sdas')
]

sql = "INSERT INTO test VALUES %s;" %(str(tuple(data)).replace('((','(').replace('))',')'))
print(sql) // you can print the sql query and verify to insert data on test mysqlworkbech for confirm data structure is 
cursor.execute(sql)
db.commit()  
db.close()

str(数据)
不会做你认为它会做的事。改用
cursor.executemany(“插入…”),data)
。另请参见为什么在“数据”后面加逗号?TypeError:executemany()只需要3个参数(给定2个)就可以将元组与
和“,”连接起来,得到这个:TypeError:executemany()只需要3个参数(给定2个)相同的错误:TypeError:executemany()只需要3个参数(给定2个)谢谢,尽管将数据转换为元组是必要的,我不明白那部分。