问题描述
在 Workflow 编排的 Python 代码节点中,如果输入参数是字符串类型,并且字符串内容本身是 JSON 结构,例如:
调试时会看到它进入代码节点后表现为类似:
args={"input":"[{\"c\":\"test\"}]"}
这导致用户很容易误以为参数被错误转义,或者需要在 Python 代码里手动处理多层转义。实际调试体验比较困惑。
另外,当代码执行失败时,前端展示的报错信息不够明确,无法快速判断是:
- Python 代码语法错误
- 入参类型转换问题
- JSON 字符串解析问题
- sandbox / pyodide 执行失败
- 输出结构不符合节点 output schema
最小复现
- 创建一个 Workflow。
- 添加 Python 代码节点。
- 给代码节点配置一个
string 类型入参,例如 input。
- 上游传入内容:
- 在 Python 代码节点中调试,例如:
import json
async def main(args: Args) -> Output:
value = args.params["input"]
data = json.loads(value)
return {"result": data[0]["c"]}
当前表现
字符串参数中包含 JSON 内容时,调试过程中看到的是转义后的形式,例如:
如果代码写错或解析失败,报错信息比较泛化,不容易定位是参数转义、类型转换,还是 Python 代码本身的问题。
问题描述
在 Workflow 编排的 Python 代码节点中,如果输入参数是字符串类型,并且字符串内容本身是 JSON 结构,例如:
[{"c": "test"}]调试时会看到它进入代码节点后表现为类似:
这导致用户很容易误以为参数被错误转义,或者需要在 Python 代码里手动处理多层转义。实际调试体验比较困惑。
另外,当代码执行失败时,前端展示的报错信息不够明确,无法快速判断是:
最小复现
string类型入参,例如input。[{"c": "test"}]当前表现
字符串参数中包含 JSON 内容时,调试过程中看到的是转义后的形式,例如:
如果代码写错或解析失败,报错信息比较泛化,不容易定位是参数转义、类型转换,还是 Python 代码本身的问题。