Python3 f 字符串:如何避免转义文字大括号?

ccp*_*zza 4 escaping python-3.x f-string

有没有办法避免在 python3 中转义大括号字符f-string

例如,如果你想输出一个 json 字符串或一段 CSS 规则,那么如果你想使用 f 字符串语法,必须将所有{}字符转换为{{和,这确实很不方便。}}

我知道可以使用eg或字符串模板的旧语法div {color: %s} % color'text {}'.format(abc)我想知道是否有一种方法可以在原始文本上使用f字符串,最好是通过一种方法来标记“原始”的开头和结尾带有某种分隔符的块,例如类似于在 java 正则表达式中使用and的方式,以便在正则表达式中包含未转义的原始字符。\Q\E

作为替代方案,标准库中是否有某些东西允许获取一大块原始文本并将其转换为f 字符串安全格式?(同样,类似于如何将Pattern.quote用于 java 正则表达式)

Mis*_*agi 5

可以使用隐式字符串连接将 f 字符串格式仅应用于字符串的一部分。

[...] 另请注意,文字连接可以为每个组件使用不同的引用样式(甚至混合原始字符串和三重引号字符串),并且格式化字符串文字可以与纯字符串文字连接

>>> hello = "world"
>>> "{hello}" f"{hello}" "!"
'{hello}world!'
Run Code Online (Sandbox Code Playgroud)

这使用与带有转义的相应 f 字符串完全相同的字节码。请注意,空格是可选的,但有助于提高可读性。

  • 输出实际上应该是“{hello}world!”,不是吗? (2认同)