Python Mysqldb插入错误

时间:2015-05-27 10:46:29

标签: mysql sql

我使用MySQLdb和Python将数据插入本地数据库。

插入查询是

for row in v1:
    cur2.execute("""""INSERT INTO s_test (CO1,CO2, CO3, CO4, CO5) VALUES (%s, %s, %s, %s, %s);""""",(row[0],row[1], row[2],row[3], row[4]));

我收到错误

IndexError: tuple index out of range

如果我使用下面的查询,我没有错误

for row in v1:
    cur2.execute("INSERT INTO s_test (CO1) VALUES (%s);",(row[0]));

如果我增加插入的列数,我会得到上面提到的相同错误。

正确的语法是什么?

2 个答案:

答案 0 :(得分:0)

我不太记得Python,但这听起来好像你在行数组中没有5个元素,而不是SQL错误。你能检查一下吗?

答案 1 :(得分:0)

假设数据完全是数字,你可以试试这个:

cur2.execute("""INSERT INTO s_test (CO1, CO2, CO3, CO4, CO5) VALUES ({0}, {1}, {2}, {3}, {4});""".format(row[0], row[1], row[2], row[3], row[4]);

使用3个引号代替5;用句点替换逗号;使用更现代的.format字符串替换。