Python 中的单个或多个 {(大括号)用于格式化字符串
Single or Multiple { (curly brackets) in Python for formatting an string
在下面的 ETL 查询中,我们看到了双大括号的使用。
query_data = """
SELECT {}
FROM {}
WHERE '{{}}'
ORDER BY '{{}}'
"""
通常情况下,使用一对带格式的括号来自定义一个字符串。所以,我想知道哪个功能使用单个或多个大括号来格式化字符串?
我们要使用的大括号的数量取决于我们要格式化字符串的次数。在您的示例中,我们第一次使用单括号格式化查询,如下所示:
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
在下面的 ETL 查询中,我们看到了双大括号的使用。
query_data = """
SELECT {}
FROM {}
WHERE '{{}}'
ORDER BY '{{}}'
"""
通常情况下,使用一对带格式的括号来自定义一个字符串。所以,我想知道哪个功能使用单个或多个大括号来格式化字符串?
我们要使用的大括号的数量取决于我们要格式化字符串的次数。在您的示例中,我们第一次使用单括号格式化查询,如下所示:
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