mysqldb - python mysql select
Problemas con Python MySQLdb(formato TypeError:% d: se requiere un nĂºmero, no str) (3)
Estoy tratando de hacer la siguiente operación de inserción:
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)
)
La estructura de mi tabla MYSQL es:
id int(255),
parent_id int(255),
level int(11),
description varchar(255),
code varchar(255),
start decimal(25,4),
end decimal(25,4)
Sin embargo, cuando ejecuto mi programa, obtengo el error
"Archivo" /usr/lib/pymodules/python2.6/MySQLdb/cursors.py ", línea 151, en ejecución query = query% db.literal (args)
TypeError: formato% d: se requiere un número, no str "
Dado que sus datos están en formato entero o decimal, ¿cómo se puede usar% s, que generalmente se utiliza para el formato de cadena% d o% i, se debe usar para valores enteros o decimales.
La cadena de formato no es realmente una cadena de formato de Python normal. Siempre debe usar %s
para todos los campos.
prueba esto :
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)
)