Usando una instrucción WHERE ___ IN ___

Estoy tratando de averiguar cómo usar adecuadamente un DÓNDE_ En _ declaración

Definición:

c.execute('''CREATE TABLE IF NOT EXISTS tab (
    _id integer PRIMARY KEY AUTOINCREMENT,
    obj text NOT NULL
    ) ;''')

Estoy tratando de hacer algo como esto:

list_of_vars=['foo','bar']
statement="SELECT * FROM tab WHERE obj IN (?)"
c.execute(statement,"'"+"','".join(list_of_vars)+"'")

Alternativamente, también he intentado esto, que evalúa directamente a lo anterior

statement="SELECT * FROM tab WHERE obj IN (?)"
c.execute(statement,"'foo','bar'")

El error que estoy recibiendo es:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 9 supplied

Esto me está dando un error. Cuando lo hago de esta manera, funciona, pero esto no se recomienda ya que es vulnerable a un ataque de inyección SQL.

statement="SELECT * FROM tab WHERE obj IN ("+"'"+"','".join(statement)+"'"+")

Respuestas a la pregunta(1)

Su respuesta a la pregunta