无法替换带特殊字符的解决问题
debug.yaml
- desc: 获取年级列表 ~ faker生成用例模板
var: {}
expect:
status_code: 200
msg: ${sum(1,2)}
hello: ${name}
修改前: main.py
from string import Template
with open(‘debug.yaml‘, ‘r‘, encoding=‘utf-8‘)as f:
f = f.read()
print(f)
f_temp = Template(f)
f = f_temp.safe_substitute({"sum(1,2)": 1, "name": "zy7y"})
print(f)
修改前:输出
- desc: 获取年级列表 ~ faker生成用例模板
var: {}
expect:
status_code: 200
msg: ${sum(1,2)}
hello: zy7y
tip: ${sum(1,2)} 并未被替换
main.py
from string import Template
class MyTemplate(Template):
"""继承Template,重写属性 idpattern, 使其可以匹配到() ,等特殊字符"""
idpattern = r‘(?a:[_a-z][_a-z0-9].*)‘
if __name__ == ‘__main__‘:
with open(‘debug.yaml‘, ‘r‘, encoding=‘utf-8‘)as f:
f = f.read()
print(f)
f_temp = MyTemplate(f)
f = f_temp.safe_substitute({"sum(1,2)": 1, "name": "zy7y"})
print(f)
输出
- desc: 获取年级列表 ~ faker生成用例模板
var: {}
expect:
status_code: 200
msg: 1
hello: zy7y
string.Template 类无法对 (,)等特殊字符替换
原文:https://www.cnblogs.com/zy7y/p/14666406.html