首页 > 其他 > 详细

string.Template 类无法对 (,)等特殊字符替换

时间:2021-04-16 18:04:25      阅读:18      评论:0      收藏:0      [点我收藏+]

string Template

无法替换带特殊字符的解决问题

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!