python – How can I print literal curly-brace characters in a string and also use .format on it?

python – How can I print literal curly-brace characters in a string and also use .format on it?

You need to double the {{ and }}:

>>> x =  {{ Hello }} {0} 
>>> print(x.format(42))
 { Hello } 42 

Heres the relevant part of the Python documentation for format string syntax:

Format strings contain “replacement fields” surrounded by curly braces {}. Anything that is not contained in braces is considered literal text, which is copied unchanged to the output. If you need to include a brace character in the literal text, it can be escaped by doubling: {{ and }}.

Python 3.6+ (2017)

In the recent versions of Python one would use f-strings (see also PEP498).

With f-strings one should use double {{ or }}

n = 42  
print(f {{Hello}} {n} )

produces the desired

 {Hello} 42

If you need to resolve an expression in the brackets instead of using literal text youll need three sets of brackets:

hello = HELLO
print(f{{{hello.lower()}}})

produces

{hello}

python – How can I print literal curly-brace characters in a string and also use .format on it?

You escape it by doubling the braces.

Eg:

x = {{ Hello }} {0}
print(x.format(42))

Leave a Reply

Your email address will not be published.