Svaret på dit oprindelige spørgsmål er:Nej, sådan en liste kan du ikke indsætte.
Men med nogle justeringer kan du få koden til at virke ved at bruge %r
og passerer i en tupel:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)
Desværre efterlader denne stil med variabel indsættelse din kode sårbar over for SQL-injektionsangreb .
I stedet anbefaler vi at bruge Pythons DB API og opbygning af en tilpasset forespørgselsstreng med flere spørgsmålstegn for de data, der skal indsættes:
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)
Eksemplet i begyndelsen af SQLite3-dokumenterne viser, hvordan man sender argumenter ved hjælp af spørgsmålstegnene, og det forklarer, hvorfor de er nødvendige (i det væsentlige sikrer det korrekt citering af dine variabler).