Poiché l'intera query deve essere in formato stringa durante l'esecuzione della query, quindi %s
dovrebbe essere usato...
Dopo l'esecuzione della query, il valore intero viene mantenuto.
Quindi la tua linea dovrebbe essere.
.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string))
La spiegazione è qui