La respuesta a su pregunta original es: No, no puede insertar una lista como esa.
Sin embargo, con algunas modificaciones, podría hacer que el trabajo de código mediante el uso de %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),)
Por desgracia, ese estilo de inserción de la variable sale de su código vulnerable a SQL injection attacks.
lugar, se recomienda el uso de Python's DB API y la construcción de una cadena de consulta personalizada con múltiples signos de interrogación de los datos que se insertan:
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 comienzo de la SQLite3 docs muestra cómo pasar argumentos usando la pregunta marca y explica por qué son necesarios (esencialmente, asegura la correcta cotización de sus variables).
En general, si usted tiene un mensaje de error, debe incluirlo en la pregunta. –
¿por qué no utilizar el módulo redis? If use ast y redis-py, puede escribir una lista en redis.eg.r.set (a, [1,23,3]). Cuando necesite este objeto, puede usar b = ast.literal_eval (r.get (a)) para obtener la lista –