EDITED
I have to format a string with values from a dictionary but the string already contains curly brackets. E.g.:
raw_string = """
DATABASE = {
'name': '{DB_NAME}'
}
"""
But, of course, raw_string.format(my_dictionary)
results in KeyErro.
Is there a way to use different symbols to use with .format()
?
This is not a duplicate of How can I print literal curly-brace characters in python string and also use .format on it? as I need to keep curly brackets just as they are and use a different delimiter for .format
.
Using custom placeholder tokens with python
string.format()
Context
string.format()
Problem
We want to use custom placeholder delimiters with python str.format()
string.format()
is powerful, but no native support for placeholder delimiter modification.string.format()
uses curly-brace which is very common and and causes Delimiter collisionstring.format()
default workaround is to double-up the delimiters, which can be cumbersome.Solution
We write a custom class that extends native python
str.format()
string.Formatter
with custom classstring.format()
to support arbitrary delimiter placeholder syntaxExample001: Demo use of a custom
ReFormat
classReFormat
class that extends pythonstr.format()
Pitfalls
str.format()