Один или несколько {(фигурные скобки) в Python для форматирования строки - PullRequest
0 голосов
/ 08 января 2020

В следующем запросе ETL мы видим использование двойных фигурных скобок.

query_data = """
SELECT {}
FROM {}
WHERE '{{}}'
ORDER BY '{{}}'
"""

Обычно для настройки строки используется одна пара скобок с форматом. Итак, мне интересно, какие функциональные возможности используются для форматирования строки с использованием одной или нескольких фигурных скобок?

1 Ответ

0 голосов
/ 08 января 2020

Количество фигурных скобок, которые мы собираемся использовать, зависит от того, сколько раз мы будем форматировать строку . В вашем примере мы впервые форматируем запрос, используя следующие квадратные скобки:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...