jinja2 中的 Template 批量替换json字符串中的内容

Posted kakaok

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jinja2 中的 Template 批量替换json字符串中的内容相关的知识,希望对你有一定的参考价值。

项目中用到elasticsearch,使用Json格式查询方式,一个查询语句中有好几个地方需要替换,且替换的值都相同。最开始把json转为字符串发方式,利用format函数处理,发现再转回json时无法成功,同事提醒可以用jinja2模板处理字符串,

second_search = """

    {
"query": {
"bool": {
"should": [
{
"bool": {
"should": [
{
"term": {
"{{ prod }}_name_en.text": {
"value": "{{ keyword }}",
"boost": 10
}
}
},
{
"term": {
"{{prod}}_name_zh.text": {
"value": "{{ keyword }}",
"boost": 10
}
}
}
]
}
},
{
"bool": {
"should": [
{
"wildcard": {
"{{prod}}_name_en.text": {
"value": "{{ keyword }}*",
"boost": 5
}
}
},
{
"wildcard": {
"{{prod}}_name_zh.text": {
"value": "{{ keyword }}*",
"boost": 5
}
}
}
]
}
},
{
"query_string": {
"fields": ["{{prod}}_name_en", "{{prod}}_name_zh"],
"query": "{{ keyword }}",
"boost": 1
}
}
]
}
}
}
"""
second_tpl = Template(second_search)
second_str = second_tpl.render(keyword=kws, prod=‘other‘)
second_json = json.loads(second_str)
经过这么处理后再把字符串转为json对象很顺利

以上是关于jinja2 中的 Template 批量替换json字符串中的内容的主要内容,如果未能解决你的问题,请参考以下文章

Flask中的模板语言Jinja2及render_template

3,Flask 中的模板语言 Jinja2 及 render_template 的深度用法

第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

Flask第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法