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

时间:2020-08-08 11:45:39

标签: python-3.x escaping f-string

有没有一种方法可以避免在python3 f-string中转义大括号字符?

例如,如果您要输出json字符串或一大堆CSS规则,则必须将所有{}字符都转换为{{和{{1 }},以防您使用f字符串语法。

我知道人们可以使用较旧的语法,例如}}div {color: %s} % colorstring templates,但我想知道是否有一种方法可以在原始文本上使用f字符串,最好是通过一种方法来标记“原始”的开头和结尾'使用某种分隔符进行阻止,例如,类似于如何使用'text {}'.format(abc)\Q in a java regex以便在正则表达式中包含未转义的原始字符。

作为替代方案,标准库中是否有某些东西可以提取原始文本并将其转换为 f-string-safe 格式? (同样,类似于您可以为Java正则表达式使用Pattern.quote的方式)

2 个答案:

答案 0 :(得分:2)

一个人可以使用implicit string concatenation将f字符串格式仅应用于部分字符串。

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

>>> hello = "world"
>>> "{hello}" f"{hello}" "!"
'{hello}world!'

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

答案 1 :(得分:0)

在python中,您可以通过三种方式处理字符串。

  1. 使用f字符串
  2. 使用str.format表达式
  3. %格式表达式

请参阅this link

如果需要,可以创建自己的自定义函数并调用它。

RETURN NULL