Implodieren einer Liste zur Verwendung in einer Python-MySQLDB-IN-Klausel

| | | | | | | | | | | | | | | |

Ich weiß, wie man eine Liste einem String zuordnet:

foostring = ";".join( map(str, list_of_ids) ) 

Und ich weiß, dass ich das Folgende verwenden kann, um diesen String in eine IN-Klausel zu bekommen:

cursor.execute("DELETE FROM foo.bar WHERE baz IN ("%s")" % ( foostring)) 

Was ich brauche, ist, dasselbe SICHER zu erreichen (Vermeidung von SQL-Einschleusung) mit MySQLDB. Da im obigen Beispiel der Fußstring nicht als Argument für die Ausführung übergeben wird, ist er angreifbar. Ich muss auch außerhalb der MySQL-Bibliothek zitieren und entkommen.

(Es gibt eine verwandte SO-Frage, aber die dort aufgeführten Antworten funktionieren entweder nicht für MySQLDB oder sind anfällig für SQL-Injection.)