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

前端 未结 16 1634
面向向阳花
面向向阳花 2020-11-21 05:31
x = \" \\{ Hello \\} {0} \"
print(x.format(42))

gives me : Key Error: Hello\\\\

I want to print the output: {Hello} 42

16条回答
  •  渐次进展
    2020-11-21 05:39

    When you're just trying to interpolate code strings I'd suggest using jinja2 which is a full-featured template engine for Python, ie:

    from jinja2 import Template
    
    foo = Template('''
    #include 
    
    void main() {
        printf("hello universe number {{number}}");
    }
    ''')
    
    for i in range(2):
        print(foo.render(number=i))
    

    So you won't be enforced to duplicate curly braces as the whole bunch of other answers suggest

提交回复
热议问题