Die Antwort auf Ihre ursprüngliche Frage lautet:Nein, so eine Liste können Sie nicht einfügen.
Mit einigen Optimierungen könnten Sie diesen Code jedoch zum Laufen bringen, indem Sie %r
verwenden und Übergabe eines Tupels:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)
Leider macht diese Art der Variableneinfügung Ihren Code anfällig für SQL-Injection-Angriffe .
Stattdessen empfehlen wir die Verwendung von Pythons DB-API und Erstellen einer benutzerdefinierten Abfragezeichenfolge mit mehreren Fragezeichen für die einzufügenden Daten:
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)
Das Beispiel am Anfang der SQLite3-Dokumentation zeigt, wie Argumente mit den Fragezeichen übergeben werden und erklärt, warum sie notwendig sind (im Wesentlichen stellt es sicher, dass Ihre Variablen korrekt zitiert werden).