非工作示例:
print(" \{ Hello \} {0} ".format(42))
所需输出:
{Hello} 42
非工作示例:
print(" \{ Hello \} {0} ".format(42))
所需输出:
{Hello} 42
当前回答
原因是,{}是.format()的语法,因此在您的情况下.format)无法识别{Hello},因此引发了错误。
可以通过使用双花括号{{}}来覆盖它,
x = " {{ Hello }} {0} "
or
尝试%s进行文本格式化,
x = " { Hello } %s"
print x%(42)
其他回答
试试看:
x=“{{你好}}{0}”
key = "FOOBAR"
print(f"hello {{{key}}}")
输出
hello {FOOBAR}
万一有人想用fstrings在大括号内打印东西。
OP撰写了以下评论:
我试图为某些目的格式化一个小JSON,例如:“{”all“:false,”selected“:”{}“}”。格式化(数据)以获得类似于{”all:false,“selected”:“1,2”}的内容
在处理JSON时,“转义括号”问题很常见。
我建议这样做:
import json
data = "1,2"
mydict = {"all": "false", "selected": data}
json.dumps(mydict)
它比替代方案更干净,即:
'{{"all": false, "selected": "{}"}}'.format(data)
当json字符串比示例更复杂时,使用json库无疑是更好的选择。
我在尝试打印文本时遇到了这个问题,我可以将文本复制粘贴到Latex文档中。我扩展了这个答案,并使用了命名替换字段:
假设您要打印多个变量的乘积,其中包含以下索引,在乳胶中为$A_{0042}*A_{3141}*A_{2718}*A_{0042}$以下代码使用命名字段执行此项工作,以便对许多索引保持可读:
idx_mapping = {'i1':42, 'i2':3141, 'i3':2178 }
print('$A_{{ {i1:04d} }} * A_{{ {i2:04d} }} * A_{{ {i3:04d} }} * A_{{ {i1:04d} }}$'.format(**idx_mapping))
原因是,{}是.format()的语法,因此在您的情况下.format)无法识别{Hello},因此引发了错误。
可以通过使用双花括号{{}}来覆盖它,
x = " {{ Hello }} {0} "
or
尝试%s进行文本格式化,
x = " { Hello } %s"
print x%(42)