n8n-code-python

用n8n代码节点写Python代码。在用n8n编写Python,使用_input/_json/_node语法,使用标准库,或者需要了解n8n代码节点中的Python限制时使用。

作者

安装

热度:4

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-n8n-code-python&locale=zh&source=copy

n8n-code-python - n8n Python 代码节点完整指南

技能概述


为 n8n 工作流中的 Code 节点提供 Python 代码编写指导,涵盖数据访问模式、标准库使用、常见错误预防以及 Python 与 JavaScript 的选择建议。

适用场景

1. 需要使用 Python 标准库的数据处理


当工作流需要统计分析、正则表达式处理、哈希加密等 Python 标准库功能时,Python Code 节点是理想选择。支持的模块包括 json、datetime、re、base64、hashlib、urllib.parse、math、random 和 statistics。

2. 开发者更熟悉 Python 语法


对于 Python 背景的开发者,使用列表推导式、字典操作等 Python 特性进行数据转换会更加自然高效。适合批量数据过滤、聚合计算、字符串处理等场景。

3. 数据验证和统计分析


需要使用 Python 的 statistics 模块进行平均值、中位数、标准差计算,或进行复杂的数据验证逻辑时,Python Code 节点可以简洁地实现这些需求。

核心功能

1. 数据访问模式指导


详细说明 _input.all()_input.first()_input.item 三种数据访问方式的使用场景,以及 Webhook 数据通过 _json["body"] 访问的关键注意事项。涵盖 Python (Beta) 和 Python (Native) 两种模式的区别,帮助开发者选择合适的执行模式。

2. 外部库限制与标准库参考


明确说明 n8n Python 环境无法导入 requests、pandas、numpy 等外部库的限制,并提供可用的 Python 标准库完整参考。包含 HTTP 请求、数据分析、网页抓取等常见需求的替代方案。

3. 常见错误预防


列出 Top 5 常见错误及其解决方案:导入外部库、缺失返回语句、错误的返回格式、字典访问 KeyError、Webhook 数据嵌套问题。提供正确的代码模板和最佳实践建议。

常见问题

n8n Code 节点应该选择 Python 还是 JavaScript?

建议 95% 的情况使用 JavaScript。JavaScript 提供完整的 n8n 辅助函数(如 $helpers.httpRequest())、Luxon DateTime 高级日期时间操作、更好的文档支持和社区资源。

仅在以下情况选择 Python:

  • 需要使用 Python 特定的标准库功能(如 statistics 模块)

  • 开发者对 Python 语法更熟悉

  • 逻辑更适合用列表推导式表达
  • n8n Python 代码节点可以使用哪些库?

    只能使用 Python 标准库,无法导入任何第三方库。

    可用的标准库模块包括:

  • json(JSON 解析)

  • datetime(日期时间操作)

  • re(正则表达式)

  • base64(编码解码)

  • hashlib(哈希函数)

  • urllib.parse(URL 解析)

  • math(数学函数)

  • random(随机数)

  • statistics(统计分析)
  • 不支持:requests、pandas、numpy、scipy、BeautifulSoup、lxml 等常用第三方库。

    n8n 中 _input.all()、_input.first() 和 _input.item 有什么区别?

    三种数据访问方式对应不同的使用场景:

  • _input.all():获取所有输入项,适用于批量处理、聚合计算、过滤转换等场景(最常用)

  • _input.first():仅获取第一个输入项,适用于单对象处理、API 响应处理

  • _input.item:仅在"Run Once for Each Item"模式下可用,表示当前循环中的项
  • 选择"Run Once for All Items"模式(默认)时,使用 _input.all()_input.first();选择"Run Once for Each Item"模式时,使用 _input.item

    n8n Python 代码节点的正确返回格式是什么?

    必须返回包含 "json" 键的字典列表

    # ✅ 正确格式
    return [{"json": {"field1": value1, "field2": value2}}]
    
    # ✅ 多个结果
    return [
        {"json": {"id": 1, "data": "first"}},
        {"json": {"id": 2, "data": "second"}}
    ]
    
    # ❌ 错误:缺少列表包装
    return {"json": {"field": value}}
    
    # ❌ 错误:缺少 json 键
    return [{"field": value}]

    所有代码路径都应返回一致的格式,包括空结果时应返回空列表 []

    n8n Python Beta 模式和 Native 模式有什么区别?

    Python (Beta) - 推荐使用

  • 可使用 _input_json_node 辅助语法

  • 提供内置助手:_now_today_jmespath()

  • 与 n8n 集成更好
  • Python (Native) (Beta)

  • 只能使用 _items_item 变量

  • 没有辅助函数

  • 更接近纯 Python 环境
  • 对于大多数 n8n 工作流,推荐使用 Python (Beta) 模式以获得更好的集成体验。