これが、パラメータバインディングを使用することになっている理由の1つです。 a> Pythonでパラメータをフォーマットする代わりに。
これを行うだけです:
sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'
次に:
cur.execute(sql, macs, host)
そうすれば、文字列を文字列として処理し、MySQLライブラリに引用符を付けてエスケープする方法を理解させることができます。
その上、一般的にパフォーマンスが向上し(MySQLは1つのクエリをコンパイルしてキャッシュし、それをさまざまなパラメーター値に再利用できるため)、SQLインジェクション攻撃 (ハッキングされる最も一般的な方法の1つ)