Dado que la sustitución de cadenas está mal vista con la formación de consultas SQL, ¿cómo se asigna el nombre de la tabla de forma dinámica?

Bastante nuevo para sqlite3, así que tengan paciencia aquí ..

Me gustaría tener una función a la que pueda pasar el nombre de la tabla y los valores para actualizar.

Inicialmente empecé con algo como esto:

def add_to_table(table_name, string):
    cursor.execute('INSERT INTO {table} VALUES ({var})'
        .format(
            table=table_name,
            var=string)
        )

Lo cual funciona A-OK, pero la lectura adicional sobre sqlite3 sugirió que esta era una manera terriblemente insegura de hacer las cosas. Sin embargo, utilizando sus? sintaxis, no puedo pasar un nombre para especificar la variable.

Intenté agregar un? en lugar de la tabla, pero que arroja un error de sintaxis.

cursor.execute('INSERT INTO ? VALUES (?)', ('mytable','"Jello, world!"'))
>> >sqlite3.OperationalError: near "?": syntax error  

Puede eltable en una declaración SQL se puede pasar de forma segura y dinámica?

Respuestas a la pregunta(2)

Su respuesta a la pregunta