Отговорът на първоначалния ви въпрос е:Не, не можете да вмъкнете такъв списък.
Въпреки това, с някои настройки, можете да накарате този код да работи, като използвате %r
и предаване в кортеж:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)
За съжаление, този стил на вмъкване на променлива прави кода ви уязвим за атаки с инжектиране на SQL .
Вместо това препоръчваме да използвате API на Python DB и изграждане на персонализиран низ за заявка с множество въпросителни знаци за данните, които ще бъдат вмъкнати:
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)
Примерът в началото на SQLite3 документи показва как да предавате аргументи с въпросителни знаци и обяснява защо са необходими (по същество гарантира правилното цитиране на вашите променливи).