分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

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

发布时间:2023-09-06 01:52责任编辑:熊小新关键词:jsjson

项目中用到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字符串中的内容

原文地址:https://www.cnblogs.com/fly-kaka/p/8989901.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved