在扣子工作流中通过代码节点运行Python脚本需严格遵循沙箱限制:从input显式读取参数,用requests调用API,结果写入output字典且类型限于str/int/float/bool/list/dict/None,调试时注意预装库范围与output赋值。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在扣子(Coze)工作流中通过代码节点运行Python脚本,实现API调用、数据清洗或逻辑判断等定制化处理,需严格遵循平台沙箱环境限制和输入输出规范。
准备可执行的Python脚本
打开扣子Bot编辑页→进入「工作流」→添加「代码」节点→点击节点右侧「编辑」按钮。
默认脚本模板含input字典和output字典结构,所有输入参数必须从input中显式读取,不能依赖全局变量或硬编码路径。
这一步操作起来很简单,直接把文件拖进去就行。
立即学习“Python免费学习笔记(深入)”;
正确读取输入参数
方法一:使用input.get("key")安全获取字段值
例如user_id = input.get("user_id", "unknown"),避免因字段缺失导致KeyError中断执行;若字段必填,需提前在上游节点确保传入,否则脚本会静默失败。
方法二:批量解包常用字段
text = input["text"] → bot_id = input["bot_id"] → chat_id = input["chat_id"]。注意:此处用方括号直接索引,【一旦字段不存在,脚本立即报错退出,且不会返回任何output】。
编写核心逻辑并控制输出
第一步:确认任务类型——是纯计算(如字符串反转)、调用外部API(需requests),还是解析JSON(需json.loads)。
第二步:若需调用网络请求,必须使用requests.get或requests.post,平台已预装requests库;但禁止使用urllib.request或http.client,这些模块未开放权限。
第三步:所有结果必须写入output字典,键名需与下游节点期望的字段名完全一致;例如下游期待"summary"字段,则必须写output["summary"] = result,写成output["Summary"]或output["sumary"]将导致连接断裂。
第四步:输出值只能是str、int、float、bool、list、dict或None,禁止返回bytes、datetime、自定义类实例等类型,否则工作流卡在该节点不往下走。
调试与错误定位
点击「运行测试」按钮,输入模拟的JSON格式输入数据(如{"text": "hello", "user_id": 123})。
若报错信息含ModuleNotFoundError,说明引用了未预装的第三方库;扣子沙箱仅支持标准库+requests+jsonpath-ng+pydantic+v1,其他库一律不可用。
若日志显示output is empty,检查是否遗漏output = {...}赋值语句——脚本末尾没有显式构造output字典,平台不会自动补空字典。


















