Dette er en af grundene til, at du skal bruge parameterbinding i stedet for at formatere parametrene i Python.
Bare gør dette:
sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'
Så:
cur.execute(sql, macs, host)
På den måde kan du bare håndtere strengen som en streng og lade MySQL-biblioteket finde ud af, hvordan man citerer og undslipper den for dig.
Oven i det får du generelt bedre ydeevne (fordi MySQL kan kompilere og cache én forespørgsel og genbruge den til forskellige parameterværdier) og undgå SQL-injektionsangreb (en af de mest almindelige måder at blive hacket på).