如何使用 format() 在 Python 中使用双花括号?

Ist*_*van 0 python format

我有以下字符串:

High CPU on app_name:{app_name}  {{host.name}} / {{host.ip}}
Run Code Online (Sandbox Code Playgroud)

我想用格式呈现它,以将 app_name 替换为实际应用程序名称。

'- name: High CPU on app_name:{app_name}  {{{host.name}}} / {{{host.ip}}}'.format(app_name='test')
Run Code Online (Sandbox Code Playgroud)

这会导致一个关键错误:

关键错误:“主机”

当我想在字符串上使用格式时,有没有办法打印 {{ Something }} ?

解决方案是将所有内容放在大括号变量中。我不确定是否可以通过其他方式完成此操作。

'High CPU on app_name:{app_name}  {{{{{host_name}}}}} / {{{{{host_ip}}}}}'.format(app_name='test', host_name='host.name', host_ip='host.ip')
Run Code Online (Sandbox Code Playgroud)

结果:

'High CPU on app_name:my_app  {{host.name}} / {{host.ip}}'
Run Code Online (Sandbox Code Playgroud)

che*_*ner 5

格式字符串的每个文字大括号都需要一对大括号。

>>> '{foo}'.format(foo=3)
'3'
>>> '{{{foo}}}'.format(foo=3)
'{3}'
>>> '{{{{{foo}}}}}'.format(foo=3)
'{{3}}'
Run Code Online (Sandbox Code Playgroud)

如果你只想用大括号括住某个东西,那么它的大括号数量必须是偶数:

>>> '{hi} {{foo.bar}}'.format(hi=3)
'3 {foo.bar}'
Run Code Online (Sandbox Code Playgroud)