首页 > 解决方案 > 使用字典自动填充 python 模板

问题描述

我想在 python 中使用字典自动填充模板。

这是一个 MWE

temp = """
{name}
"""
mydict = {"name":"pythonic"}
print(temp.format(**mydict))

但是,我的真实模板里面有大括号。这是一个不起作用但反映我的实际问题的示例

temp = """
{
{name}
}
"""
mydict = {"name":"pythonic"}
print(temp.format(**mydict))

我得到的错误是预期的......但是我不知道解决方案:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print(temp.format(**mydict))
ValueError: unexpected '{' in field name

我希望输出是

{
pythonic
}

我想一种解决方案是在我的字典中添加“{”和“}”作为键并将它们也粘贴进去,但是,这似乎很愚蠢。特别是因为我的实际模板有几次大括号。

标签: python-3.xdictionarytemplates

解决方案


使用双花​​括号来转义它们:

temp = """
{{
{name}
}}
"""
mydict = {"name":"pythonic"}
print(temp.format(**mydict))

这将提供您想要的输出。您可以在有关格式化字符串的文档中找到它...


推荐阅读