sql >> Base de Datos >  >> RDS >> Mysql

Insertar lista en mi base de datos usando Python

La respuesta a su pregunta original es:No, no puede insertar una lista como esa.

Sin embargo, con algunos ajustes, podría hacer que ese código funcione usando %r y pasando en una tupla:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)

Desafortunadamente, ese estilo de inserción de variables deja su código vulnerable a ataques de inyección SQL .

En su lugar, recomendamos usar API de base de datos de Python y crear una cadena de consulta personalizada con varios signos de interrogación para insertar los datos:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)

El ejemplo al principio de los documentos de SQLite3 muestra cómo pasar argumentos usando los signos de interrogación y explica por qué son necesarios (esencialmente, asegura la cita correcta de sus variables).