我有一个带占位符的字符串。我想替换占位符的值,这些值存储在MAP(字典)中。我正在使用以下代码
from string import Template
values = {'what': 'surreal', 'punctuation': 'is'}
t = Template(" Hello, $what world $punctuation One of Python least-used functions is ")
t.substitute(values)
print t
这要给我正确的结果
我的输出应该是:
Hello, surreal world is One of Python least-used functions is
你能否就如何做到这一点给我意见?
答案 0 :(得分:1)
我建议使用像Genshi
这样的模板引擎。
这为您提供了更大的灵活性,以及它们的设计目的: - )
基于http://genshi.edgewall.org/wiki/Documentation/0.6.x/templates.html的Genshi示例:
>>> from genshi.template import TextTemplate
>>> tmpl = TextTemplate('Hello, ${dict.what} world ${dict.punctuation} One of Python least-used functions is')
>>> stream = tmpl.generate(dict={'what':'surreal', 'punctuation':'is'})
>>> print(stream)
Hello, surreal world is One of Python least-used functions is
使用genshi.template.MarkupTemplate
创建一些标记也很容易。
我还建议将模板与代码分开,您可以使用类似文件的对象TextTemplate
或MarkupTemplate
。
答案 1 :(得分:1)
您可以使用string format作为示例:
values = {'what': 'surreal', 'punctuation': 'is'}
template=" Hello, {what} world {punctuation} One of Python least-used functions is "
t = template.format(**values)
print(t)
# Hello, surreal world is One of Python least-used functions is