Skip to content

Python 代码节点调试时字符串入参转义表现不直观,且执行失败报错信息不足 #58

@Coaixy

Description

@Coaixy

问题描述

在 Workflow 编排的 Python 代码节点中,如果输入参数是字符串类型,并且字符串内容本身是 JSON 结构,例如:

[{"c": "test"}]

调试时会看到它进入代码节点后表现为类似:

args={"input":"[{\"c\":\"test\"}]"}

这导致用户很容易误以为参数被错误转义,或者需要在 Python 代码里手动处理多层转义。实际调试体验比较困惑。

另外,当代码执行失败时,前端展示的报错信息不够明确,无法快速判断是:

  • Python 代码语法错误
  • 入参类型转换问题
  • JSON 字符串解析问题
  • sandbox / pyodide 执行失败
  • 输出结构不符合节点 output schema

最小复现

  1. 创建一个 Workflow。
  2. 添加 Python 代码节点。
  3. 给代码节点配置一个 string 类型入参,例如 input
  4. 上游传入内容:
[{"c": "test"}]
  1. 在 Python 代码节点中调试,例如:
import json

async def main(args: Args) -> Output:
    value = args.params["input"]
    data = json.loads(value)
    return {"result": data[0]["c"]}

当前表现

字符串参数中包含 JSON 内容时,调试过程中看到的是转义后的形式,例如:

[{\"c\":\"test\"}]

如果代码写错或解析失败,报错信息比较泛化,不容易定位是参数转义、类型转换,还是 Python 代码本身的问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions