Comme toute la requête doit être dans un format de chaîne lors de l'exécution de la requête, donc %s
doit être utilisé...
Une fois la requête exécutée, la valeur entière est conservée.
Votre ligne devrait donc être.
.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string))
L'explication est ici