Python MySql executemany错误
问题描述:
我收到“cusrosr.executemany()”错误 插入单个列的第一个语句(与recs1)执行正常,并且插入两条记录 第二个插入(recs2)有一个错误:使用Python MySql executemany错误
not enough arguments for format string
sql="""CREATE TABLE TestTable (
Col1 VARCHAR(45) NULL ,
Col2 VARCHAR(45) NULL);"""
cursor.execute(sql)
recs1= [("Spam"), ("Ham")]
recs2= [("Spam", "Sausage"), ("Ham", "Plate")]
try:
cursor.executemany("""insert into TestTable (Col1) values (%s);""", recs1)
db.commit()
print "cursor.rowcount: ",cursor.rowcount
cursor.executemany("""insert into TestTable (Col1, Col2) values (%s , %s);""", recs2)
db.commit()
except Exception as e:
print 'Error: ', e
db.rollback()
- 软件:
- 的Python从MySQL-蟒-1.2.4b4.win32-py2.7安装2.7.4
- MySQL的('1.2。 .4b4')
- MySql'5.5.27-log'(在AWS RDS上)。
任何想法?
答
我还没有测试过你的代码,但只是看着它,它看起来你正在给字符串提供两个%s出现的只有一个值 - 因此“格式字符串没有足够的参数”错误。
你可能想要做这样的事情:
recs2, recs3 = [("Spam", "Sausage")], [("Ham", "Plate")]
cursor.executemany("""insert into TestTable (Col1, Col2) values (%s , %s);""", recs2, recs3)
同样,我还没有测试任何东西,所以需要您自担风险执行。
这就是“executemany”背后的全部想法。在这里看到一个例子: http://dev.mysql.com/doc/connector-python/en/myconnpy_MySQLCursor_executemany.html – 2013-05-10 18:09:03
找到一个解决方案,用原来的MySql替换MySql模块mysql-connector-python-1.0.10- py2.7 – 2013-05-11 03:38:13