From 29f1a96c3b39dbc7d154c926ca332012976f9722 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 19 Nov 2025 16:53:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20format=5Fjson=5Fwith=5Fplaceholders=20?= =?UTF-8?q?=E5=A4=84=E7=90=86decimal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/bi/services.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/bi/services.py b/apps/bi/services.py index 0bba6d35..ee896bd8 100644 --- a/apps/bi/services.py +++ b/apps/bi/services.py @@ -4,6 +4,7 @@ from jinja2 import Template from apps.bi.models import Dataset import concurrent from apps.utils.sql import execute_raw_sql, format_sqldata +from apps.utils.tools import MyJSONEncoder forbidden_keywords = ["UPDATE", "DELETE", "DROP", "TRUNCATE", "INSERT", "CREATE", "ALTER", "GRANT", "REVOKE", "EXEC", "EXECUTE"] @@ -25,7 +26,7 @@ def format_json_with_placeholders(json_str, **kwargs): # 遍历关键字参数,将占位符替换为对应的值 for key, value in kwargs.items(): - formatted_json = formatted_json.replace("{" + key + "}", json.dumps(value)) + formatted_json = formatted_json.replace("{" + key + "}", json.dumps(value, cls=MyJSONEncoder)) # 格式化后的字符串依然是 JSON 字符串,没有使用 json.loads() return formatted_json