Проблемы с 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 MySQL executemany в предложении WHERE
  • В чем причина ошибки mysqldb Warning: Усеченная неправильная ошибка DOUBLE?
  • Установите mysql-python (Windows)
  • как добавить новый столбец каждый раз, когда я запускаю программу python
  • mysql-python устанавливает фатальную ошибку
  • cursor.fetchone () возвращает None, но строка в базе данных существует
  • Ошибка mysql.connector во время «except» при компиляции с помощью pyinstaller?
  • получить необработанное десятичное значение из запроса mysqldb
  • Python - лучший язык программирования в мире.