Я знаю, как отобразить список в строку:
foostring = ",".join( map(str, list_of_ids) )
И я знаю, что могу использовать следующую строку, чтобы вставить эту строку в предложение IN:
cursor.execute("DELETE FROM foo.bar WHERE baz IN ('%s')" % (foostring))
Мне нужно сделать то же самое БЕЗОПАСНО (избегая SQL-инъекций), используя MySQLDB. В приведенном выше примере, поскольку foostring не передается в качестве аргумента для выполнения, он уязвим. Я также должен процитировать и убежать за пределы библиотеки mysql.
(Существует связанный вопрос SO , но перечисленные там ответы либо не работают для MySQLDB, либо уязвимы для внедрения SQL.)