Kısa bir süre önce buna rastladım çünkü önceden biçimlendirilmiş JSON'a dizeler enjekte etmek istedim. Benim çözümüm, böyle bir yardımcı yöntem oluşturmaktı:
def preformat(msg):
""" allow {{key}} to be used for formatting in text
that already uses curly braces. First switch this into
something else, replace curlies with double curlies, and then
switch back to regular braces
"""
msg = msg.replace('{{', '<<<').replace('}}', '>>>')
msg = msg.replace('{', '{{').replace('}', '}}')
msg = msg.replace('<<<', '{').replace('>>>', '}')
return msg
Daha sonra şöyle bir şey yapabilirsiniz:
formatted = preformat("""
{
"foo": "{{bar}}"
}""").format(bar="gas")
Performans bir sorun değilse işi yapar.