fix: format_json_with_placeholders 处理decimal

This commit is contained in:
caoqianming 2025-11-19 16:53:39 +08:00
parent cbd458a8a5
commit 29f1a96c3b
1 changed files with 2 additions and 1 deletions

View File

@ -4,6 +4,7 @@ from jinja2 import Template
from apps.bi.models import Dataset from apps.bi.models import Dataset
import concurrent import concurrent
from apps.utils.sql import execute_raw_sql, format_sqldata 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"] 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(): 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() # 格式化后的字符串依然是 JSON 字符串,没有使用 json.loads()
return formatted_json return formatted_json