我在“cusrosr.executemany()上收到错误。 插入单个列的第一个语句(带有recs1)执行正常,并且插入两个记录。 第二个插入(recs2)有一个错误:
格式字符串
的参数不够
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()
有什么想法吗?
答案 0 :(得分:0)
我还没有测试过您的代码,但只是通过查看它,看起来您只用一个值为2%s出现字符串 - 因此“格式字符串的参数不够”错误。
你可能想做这样的事情:
recs2, recs3 = [("Spam", "Sausage")], [("Ham", "Plate")]
cursor.executemany("""insert into TestTable (Col1, Col2) values (%s , %s);""", recs2, recs3)
同样,我没有测试过任何东西,所以请自行承担风险。