最近使用ansible管理项目部署,有个前端的配置项是相似字典类的配置,其值如{‘memu1’:['/test1','/test2']},在ansible渲染后模板配置项变成了{u'memu1’:[u'/test1',u'/test2']}。前端
假设ansible中某配置文件的模板以下:json
navs : {{ nav }}ide
经过ansible传递的变量值为以下:测试
navs: {‘memu1’:['/test1','/test2']}spa
若是使用template模块渲染,最终的配置项会变成:.net
navs: {u'memu1’:[u'/test1',u'/test2']}code
这里至关于渲染后成了unicode的字符串,这样对应的前端服务没法解析该配置。orm
1. 对于字典类的配置项,咱们能够先将配置项的值进行转义:blog
navs: {u'memu1’:[u'/test1',u'/test2']} => navs: "{\"memu1\": [\"/test1\", \"/test2\"] }"unicode
2. 而后在配置文件的模版中使用to_json过滤器转换成字典格式:navs : {{ nav | to_json }}
最后渲染出来的配置如:navs: {"memu1": ["/test1", "/test2"]}
这样问题就解决了~
博主:测试生财
座右铭:专一测试与自动化,致力提升研发效能;经过测试精进完成原始积累,经过读书理财奔向财务自由。
csdn:https://blog.csdn.net/ccgshigao