在 n8n Code 节点中高效编写 Python 脚本
解决在 n8n 工作流中需要复杂逻辑处理的问题:通过掌握 Python Code 节点的特定语法和限制,实现高效的数据转换、过滤与统计分析。
为什么需要这个技能
虽然 n8n 提供了大量内置节点,但在面对复杂的数学计算、正则提取或特定的数据清洗需求时,可视化节点往往难以胜任。
n8n 的 Code 节点允许用户直接编写 Python 代码。但由于其运行在沙箱环境中,与标准 Python 环境存在显著差异(如无法安装第三方库、必须遵守特定的输入输出格式)。掌握这些特性可以避免工作流在执行时因 KeyError 或格式错误而崩溃。
适用场景
- 复杂数据转换:使用列表推导式快速清洗大规模 JSON 数据。
- 统计分析:利用
statistics标准库计算均值、中位数等指标。 - 文本解析:使用
re模块从非结构化文本中提取关键信息。 - 数据验证:在数据进入数据库前进行多字段的合法性校验。
核心工作流
1. 选择执行模式
- Run Once for All Items(推荐):代码仅执行一次,通过
_input.all()处理所有输入项,适用于聚合、过滤。 - Run Once for Each Item:代码为每个输入项独立执行一次,通过
_input.item访问当前项。
2. 数据访问语法
- 全量获取:
items = _input.all() - 单项获取:
first_item = _input.first() - 跨节点引用:
_node["Node Name"]["json"] - Webhook 特别注意:Webhook 传入的数据统一在
_json["body"]之下,而非直接在_json中。
3. 遵守输出规范
n8n 要求 Python 节点必须返回一个字典列表,且每个字典必须包含 json 键。
# 正确的返回格式
return [
{"json": {"id": 1, "status": "success"}},
{"json": {"id": 2, "status": "pending"}}
]
4. 库限制与替代方案
- 禁用:无法使用
requests,pandas,numpy等第三方库。 - 可用:仅支持标准库(如
json,datetime,re,base64,hashlib,math,statistics)。 - 方案:如需发送 HTTP 请求,请在 Code 节点前使用 HTTP Request 节点。
下载和安装
下载 n8n-code-python 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐