Python MySQLdb问题(TypeError:%d格式:一个数字是必需的,而不是str)

我正在尝试执行以下插入操作:

cursor.execute(""" insert into tree (id,parent_id,level,description,code,start,end) values (%d,%d,%d,%s,%s,%f,%f) """, (1,1,1,'abc','def',1,1) ) 

我的MYSQL表的结构是:

 id int(255), parent_id int(255), level int(11), description varchar(255), code varchar(255), start decimal(25,4), end decimal(25,4) 

但是,当我运行我的程序,我得到错误

“执行查询中的”/usr/lib/pymodules/python2.6/MySQLdb/cursors.py“行151,查询%db.literal(args)

TypeError:%d格式:需要一个数字,而不是str“

格式string不是一个真正的Python格式string。 您必须始终使用%s作为所有字段。

由于他的数据是整数或十进制格式,你怎样使用通常用于string格式%s的%s,或%i应该用于整数还是十进制值。

尝试这个 :

 cursor.execute(""" insert into tree (id,parent_id,level,description,code,start,end) values (%s,%s,%s,'%s','%s',%s,%s) """%(1,1,1,'abc','def',1,1) )