use repair_json fix json parse error of HTTPRequestNode (#21909)
Co-authored-by: lizb <lizb@sugon.com>
This commit is contained in:
@@ -8,6 +8,7 @@ from typing import Any, Literal
|
|||||||
from urllib.parse import urlencode, urlparse
|
from urllib.parse import urlencode, urlparse
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
|
from json_repair import repair_json
|
||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
from core.file import file_manager
|
from core.file import file_manager
|
||||||
@@ -178,7 +179,8 @@ class Executor:
|
|||||||
raise RequestBodyError("json body type should have exactly one item")
|
raise RequestBodyError("json body type should have exactly one item")
|
||||||
json_string = self.variable_pool.convert_template(data[0].value).text
|
json_string = self.variable_pool.convert_template(data[0].value).text
|
||||||
try:
|
try:
|
||||||
json_object = json.loads(json_string, strict=False)
|
repaired = repair_json(json_string)
|
||||||
|
json_object = json.loads(repaired, strict=False)
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
raise RequestBodyError(f"Failed to parse JSON: {json_string}") from e
|
raise RequestBodyError(f"Failed to parse JSON: {json_string}") from e
|
||||||
self.json = json_object
|
self.json = json_object
|
||||||
|
Reference in New Issue
Block a user