Python MySql executemany错误

时间:2013-05-10 17:13:22

标签: python mysql-python

我在“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()
  • 使用的软件:
  • Python 2.7.4
  • 从MySQL-python-1.2.4b4.win32-py2.7安装的MySql。 ('1.2.4b4')
  • MySql'5.5.27-log'(在AWS RDS上)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我还没有测试过您的代码,但只是通过查看它,看起来您只用一个值为2%s出现字符串 - 因此“格式字符串的参数不够”错误。

你可能想做这样的事情:

recs2, recs3 =  [("Spam", "Sausage")], [("Ham", "Plate")]
cursor.executemany("""insert into TestTable (Col1, Col2) values (%s , %s);""", recs2, recs3)

同样,我没有测试过任何东西,所以请自行承担风险。