A resposta para sua pergunta original é:Não, você não pode inserir uma lista assim.
No entanto, com alguns ajustes, você pode fazer esse código funcionar usando
%r
e passando uma tupla:variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)
Infelizmente, esse estilo de inserção de variável deixa seu código vulnerável a ataques de injeção de SQL .
Em vez disso, recomendamos usar a API de banco de dados do Python e construindo uma string de consulta personalizada com vários pontos de interrogação para os dados a serem inseridos:
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)
O exemplo no início dos documentos SQLite3 mostra como passar argumentos usando os pontos de interrogação e explica por que eles são necessários (essencialmente, garante a citação correta de suas variáveis).