繁体   English   中英

Python字符串模板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM