n8n-code-python について
n8n Code ノードで範囲を限定したデータ変換に Python を使うためのガイドです。ネイティブランタイムの仕様やバージョン上の注意、安全な運用を扱い、ワークフローやランナーは含みません。
主な機能
- 01全アイテム・単一アイテムの処理例
- 02ネイティブ Python ランタイムの注意点
- 03インポートと許可リストの制約
- 04入力と実行の安全に関する指針
- 05アイテム連携と出力の制約
活用シーン
- 01n8n Code ノードでのデータ変換
- 02ネイティブ Python ランタイムへのコード移行
- 03インポートとランナーの制約確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill n8n-code-pythonインストール後、Claude Code で/n8n-code-pythonを入力して読み込まれたか確認します。
同梱ファイルreferences/detailed-guide.md
詳細
Python Code Node(ネイティブ)
使用する場面
ネイティブノードや式では不十分な場合に、n8n Code ノードで範囲を限定した Python 変換に使用します。まず、インストールされている n8n のバージョンとタスクランナーを確認してください。
ランタイムの仕様
n8n 2 では従来の Pyodide ランタイムが削除されました。ネイティブ Python は、全アイテムモードでは _items、アイテムごとのモードでは _item を使用します。従来の _input、_json、_node、_now ヘルパーは使用できません。セルフホスト環境でのインポートは、インストール済みのランナーパッケージと明示的な許可リストに依存します。Cloud 環境では、標準モジュールも含めてインポートできない場合があります。JavaScript のインポートも制限されているため、言語を切り替えても、ファイルシステム、ネットワーク、パッケージに無制限にアクセスできるわけではありません。
例
インポートを使わない全アイテムモード:
return [
{"json": {"id": item["json"].get("id"), "processed": True},
"pairedItem": {"item": index}}
for index, item in enumerate(_items)
if item["json"].get("active")
]
アイテムごとのモード:
return {"json": {**_item["json"], "name_upper": (_item["json"].get("name") or "").upper()}}
文字列操作の前に、入力の型を実際に確認してください。リモート呼び出しには、管理対象の認証情報を使う HTTP Request ノードを使用し、許可された接続先のみを利用するよう徹底してください。ペイロードやトークンをログに記録したり、Webhook ユーザーから提供されたコードを実行したりしないでください。アイテム数、入力サイズ、実行時間に上限を設けてください。また、メッセージの送信、支出、外部システムの変更を行うワークフローを有効化する前に、非アクティブなテスト用ワークフローで変更を準備してください。
詳細ガイド
変換パターンと移行時の注意点については、ガイドをお読みください。参照先の上流の補助ファイルは同梱されていません。
制限事項
ワークフローもランナーも含まれていません。インポートの可否と出力の正規化は、デプロイ先のバージョンで確認する必要があります。アイテムのリンク、バイナリデータ、集約には明示的な処理が必要です。これらの例では、ランタイムテストは確立されていません。
主なランタイムのリファレンス:n8n Code node のドキュメントソース。