Ya que no dejaste mas información del esquema de tu base datos voy a suponer algunas cosas.
1. No uses formateo de cadenas para generar tus queries. (Mira el ejemplo para ver la manera correcta).
2. Te recomendaría usar un ORM en lugar de hacer tus queries a mano. Pero si un proyecto el cual estas aprendido y no va a salir a producción entonces esta bien.
3. Si usas formateo de cadenas para hacer tus queries eres propenso a tener un ataque de
sql injection.
Código Python:
Ver originalsql = "INSERT INTO facturas(numero,fecha,codigo,importe) VALUES(%s, %s, %s, %s)"
datos = (numero, fecha, codigo_cli, importe)
cursor.execute(sql, datos)
Otra cosa recuerda que codigo_cli debe de ser la primary de la tabla clientes.