用途
n8n-code-python 是一份用于指导在 n8n Code 节点中编写 Python 代码的技能资料。它面向需要在 n8n 工作流里使用 Python 处理数据的用户,提供从语法、数据访问到错误防范的系统性说明。
该资料明确建议:优先使用 JavaScript,覆盖约 95% 的使用场景。仅在以下情况使用 Python:需要特定的 Python 标准库函数;对 Python 语法明显更熟悉;所进行的数据转换更适合用 Python 完成。资料指出 JavaScript 更受推荐的原因包括:拥有完整的 n8n 辅助函数(如 $helpers.httpRequest 等)、Luxon DateTime 库用于高级日期时间操作、没有外部库限制,以及更好的 n8n 文档与社区支持。
主要能力
- 提供 Python Code 节点的基础模板与快速上手示例。
- 说明数据访问方式:_input.all()、_input.first()、_input.item,以及通过 _node 引用其他节点数据。
- 介绍两种执行模式:Run Once for All Items(推荐,默认,适合聚合、过滤、批处理、转换)与 Run Once for Each Item(适合逐项逻辑、独立操作、逐项校验)。
- 区分 Python (Beta) 与 Python (Native) 两种模式:Beta 使用 _input、_json、_node 辅助语法,提供 _now、_today、_jmespath() 等辅助;Native 仅使用 _items、_item 变量,无辅助函数,更受限。资料推荐使用 Python (Beta)。
- 强调返回格式要求:必须返回 [{"json": {...}}] 形式的字典列表。
- 指出 Webhook 数据嵌套在 _json["body"] 下这一最常见错误。
- 说明关键限制:不能导入外部库(无 requests、pandas、numpy、scipy、BeautifulSoup、lxml),仅可使用标准库(json、datetime、re、base64、hashlib、urllib.parse、math、random、statistics)。
- 提供常见模式:数据转换、过滤与聚合、正则字符串处理、数据校验、统计分析。
- 列出五大常见错误及防范:导入外部库、代码为空或缺少 return、返回格式错误、字典访问 KeyError、Webhook body 嵌套。
- 给出最佳实践:使用 .get() 安全访问、显式处理 None/Null、使用列表推导式过滤、返回一致结构、用 print() 调试。
使用方式
在 n8n 的 Code 节点中选择 Python 语言,按资料提供的模板编写代码。基本模板为:items = _input.all(),遍历处理后以 return processed 返回。数据访问根据场景选择 _input.all()、_input.first() 或 _input.item。返回时必须使用 [{"json": {...}}] 格式。若来自 Webhook,需通过 _json["body"] 访问数据。需要 HTTP 请求时,应在 Code 节点前使用 HTTP Request 节点,或改用 JavaScript 的 $helpers.httpRequest()。
适用场景
- 需要使用 statistics 模块做统计运算。
- 对 Python 语法更熟悉,逻辑适合用列表推导式表达。
- 需要特定 Python 标准库函数。
- 在 n8n 工作流中做数据转换、过滤、聚合、校验等处理。
限制
- 无法导入任何外部库,仅限标准库。
- 需要 HTTP 请求、高级日期时间、更好 n8n 集成时,应改用 JavaScript。
- 简单字段映射、基础过滤、简单条件判断、仅 HTTP 请求等场景,建议使用 Set、Filter、IF/Switch、HTTP Request 等专用节点而非 Code 节点。
- 资料中未提供具体的收费、价格、平台支持范围等信息。