Python 中如何在使用 format/f-string 时输出花括号字符 {}?
Python 字符串中输出字面花括号:format 用 {{ }} 转义;f-string 用 {{ }} 转义。本文介绍各种格式化方式中的花括号转义。
在 .format() 或 f-string 中,用双花括号 {{ 和 }} 转义——{{ 输出 {,}} 输出 }。
.format() 中转义
print("{{example}}".format())
# 输出: {example}
print("{{{}}}".format("value"))
# 输出: {value}
注意三层的 {{{}}}:外层 {{ 和 }} 是转义的字面花括号,内层 {} 是 format 的占位符。
f-string 中转义
name = "world"
print(f"{{hello}}")
# 输出: {hello}
print(f"{{{name}}}")
# 输出: {world}
规则相同:{{ → {,}} → },内部的 {} 仍然是变量插值。
百分号格式化不需要转义
print("{example}")
# 输出: {example}——不做 format 就没有转义问题
常见问题(FAQ)
Q:想在 JSON 模板里用 format?
A:JSON 大量使用花括号,用 format/f-string 会很痛苦(每个花括号都要双写)。建议改用 json.dumps() 或字符串拼接,或用 string.Template(用 $var 占位,不冲突)。
Q:输出 {{ 两个字面花括号?
A:写四个:{{{{,输出 {{。
Q:% 格式化需要转义花括号吗?
A:不需要。"%s {example}" % "hello" 中花括号不是特殊字符,原样输出。