implodowanie listy do użycia w klauzuli MySQLDB IN w Pythonie

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

Wiem, jak zmapować listę na ciąg znaków:

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

I wiem, że mogę użyć następującego, aby umieścić ten ciąg w klauzuli IN:

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

To, czego potrzebuję, to wykonać to samo BEZPIECZNIE (unikając wstrzykiwania SQL) przy użyciu MySQLDB. W powyższym przykładzie, ponieważ foostring nie jest przekazywany jako argument do wykonania, jest podatny na ataki. Muszę też cytować i uciekać poza bibliotekę mysql.

(Istnieje powiązane pytanie SO

a>, ale wymienione tam odpowiedzi albo nie działają dla MySQLDB, albo są podatne na wstrzyknięcie SQL.