Количество фигурных скобок, которое мы собираемся использовать, зависит от того, сколько раз мы собираемся форматировать строку. В вашем примере мы впервые форматируем запрос, мы используем одинарные скобки следующим образом:
first_format = query_data.format("id", "table")
Теперь второй раз форматируем
second_format = first_format.format("id != '1'", "id")
Что должно отображать следующую строку
SELECT id
FROM table
WHERE id != '1'
ORDER BY id
Однако, если вы форматируете строку три или более раз, управление количеством фигурных скобок становится невозможным, потому что вам нужно 2^(n-1) количество фигурных скобок для каждого n-кратного форматирования. . Проиллюстрируем это на примере
query_data = """
SELECT {}
FROM {}
WHERE {{}}
AND {{}} > {{{{}}}}
OR {{}} != {{{{{{{{}}}}}}}}
ORDER BY {{}}
"""
first_format = query_data.format("id", "table")
second_format = first_format.format("id != '1'","date", "name", "id")
third_format = second_format.format("2020-01-07")
fourth_format = third_format.format("john")
Должен отображать следующий вывод
SELECT id
FROM table
WHERE id != '1'
AND date > 2020-01-07
OR name != john
ORDER BY id
person
Miguel Trejo
schedule
08.01.2020