Eu sei como mapear uma lista para uma string:
foostring = ",".join( map(str, list_of_ids) )
E eu sei que posso usar o seguinte para colocar essa string em uma cláusula IN:
cursor.execute("DELETE FROM foo.bar WHERE baz IN ('%s')" % (foostring))
O que eu preciso é realizar a mesma coisa com SEGURANÇA (evitando injeção de SQL) usando MySQLDB. No exemplo acima, porque foostring não é passado como um argumento a ser executado, ele é vulnerável. Eu também tenho que citar e escapar fora da biblioteca mysql.
(Há uma pergunta SO relacionada , mas as respostas listadas não funcionam para MySQLDB ou são vulneráveis à injeção de SQL.)