zoukankan      html  css  js  c++  java
  • string.Template 类无法对 (,)等特殊字符替换

    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
    
    作者:zy7y
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    react实现拖拽
    JS实现判断滚动条滚到页面底部并执行事件的方法
    获取地址中的参数 封装在params对象里面
    git常用命令
    Linux定时任务Crontab命令详解
    tars 部署
    tars 问题汇总
    Mac
    http head
    SSL
  • 原文地址:https://www.cnblogs.com/zy7y/p/14666406.html
Copyright © 2011-2022 走看看