[英]Python String Templates
我们使用字符串模板通过提供dict来替换Python String中的某些值。 它工作正常。 但是,尽管使用safe_substitute,此下面的代码仍无法按预期工作。 知道为什么吗?
from string import Template
obj = Template("$$Tag$$")
obj.safe_substitute({})
Output : '$Tag$' Expected : '$$Tag$$'
(As there is no value to replace in the dict supplied .)
如果我将'##'作为分隔符,也会对'####'发生同样的问题。 谁知道为什么它忽略了额外的分隔符? 只是想了解幕后发生的事情。
从文档 :
$$
是逃脱; 用$
代替。
如果您想加倍$
,则可以使用类似以下内容:
>>> obj = Template("$$$$Tag$$$$")
>>> obj.safe_substitute({})
'$$Tag$$'
>>> obj.safe_substitute({'Tag':1})
'$$Tag$$'
>>> obj = Template("$$$Tag$$$") #First $ escapes the second $
>>> obj.safe_substitute({'Tag':1})
'$1$$'
从文档:
“ $$”是一个转义符; 它被替换为单个“ $”。
您必须在输出中为每个美元符号放置两个美元符号:
>>> Template('$$$$Tag$$$$').substitute()
'$$Tag$$'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.