Как получить двойные фигурные скобки в Python, используя format ()? - PullRequest
0 голосов
/ 01 октября 2019

У меня есть следующая строка:

High CPU on app_name:{app_name}  {{host.name}} / {{host.ip}}

Я хотел бы отобразить ее с форматом, чтобы заменить имя приложения на фактическое имя приложения.

'- name: High CPU on app_name:{app_name}  {{{host.name}}} / {{{host.ip}}}'.format(app_name='test')

Это приводит к ошибке ключа:

KeyError: 'host'

Есть ли способ напечатать {{что-то}}, когда я хотел бы использовать формат в строке?

Решение состоит в том, чтобы иметь всев фигурных скобках переменные. Я не уверен, что это можно сделать любым другим способом.

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

Результат:

'High CPU on app_name:my_app  {{host.name}} / {{host.ip}}'

1 Ответ

1 голос
/ 01 октября 2019

Строка формата нуждается в паре фигурных скобок для каждой буквальной фигурной скобки.

>>> '{foo}'.format(foo=3)
'3'
>>> '{{{foo}}}'.format(foo=3)
'{3}'
>>> '{{{{{foo}}}}}'.format(foo=3)
'{{3}}'

Если вы только хотите получить фигурные скобки вокруг чего-либо, то это должно бытьчетное количество фигурных скобок:

>>> '{hi} {{foo.bar}}'.format(hi=3)
'3 {foo.bar}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...