Проблемы с Python MySQLdb (TypeError:% d format: требуется номер, а не 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, в execute query = query% db.literal (args)

TypeError:% d format: требуется номер, а не str "

3 Solutions collect form web for “Проблемы с Python MySQLdb (TypeError:% d format: требуется номер, а не str)”

Строка формата на самом деле не является обычной строкой формата Python. Вы всегда должны использовать %s для всех полей.

Поскольку его данные находятся в целочисленном или десятичном формате, как вы можете использовать% s, который обычно используется для формата строки,% d или% 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) ) 
Python - лучший язык программирования в мире.