使用Python的string.Template类 - 如何将$ {}用于包含空格的字典中的字段?
E.g。
t = string.Template("hello ${some field}")
d = { "some field": "world" }
print( t.substitute(d) ) # Returns "invalid placeholder in string"
编辑:这是我能得到的最接近的,但需要注意的是所有变量都需要用括号括起来(否则所有空格分隔的单词都会匹配)。
class MyTemplate(string.Template):
delimiter = '$'
idpattern = '[_a-z][\s_a-z0-9]*'
t = MyTemplate("${foo foo} world ${bar}")
s = t.substitute({ "foo foo": "hello", "bar": "goodbye" })
# hello world goodbye
答案 0 :(得分:0)
以防这可能对其他人有帮助。在python 3中,您可以使用format_map
:
t = "hello {some field}"
d = { "some field": "world" }
print( t.format_map(d) )
# hello world
答案 1 :(得分:0)
来自Doc,它说我们可以使用模板选项
https://docs.python.org/dev/library/string.html#template-strings
import string
class MyTemplate(string.Template):
delimiter = '%'
idpattern = '[a-z]+ [a-z]+'
t = MyTemplate('%% %with_underscore %notunderscored')
d = { 'with_underscore':'replaced',
'notunderscored':'not replaced',
}
print t.safe_substitute(d)