Python - Pythonコードを実行アクション

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

このアクションはカスタムPythonスクリプトを実行します。


制限事項

このアクションを使用する際は、次の制限事項に注意してください:

説明制限メモ
ライブラリ、一時メモリ、入力を含むPythonコネクタアクションのメモリ制限256 MBNA
Pythonコネクターアクションのタイムアウト90秒NA
Pythonコネクタアクションの最大コードフィールドサイズ(スクリプト)1 MBNA
pypdfライブラリで処理されるPDFファイルの最大サイズ制限35 MBNA
Pandasライブラリで処理されるCSVファイルの最大サイズ制限20 MBこの制限は、Pandasの一時ストレージ要件を考慮しています。
Pandasライブラリで処理されるExcelファイルの最大サイズ制限5 MBExcelファイルの解凍には追加のメモリが必要です。
アクション内のPython評価の読み取りリクエストタイムアウト90秒この制限は、次のアクションに適用されます:
  • カスタムPythonコードを呼び出すアクション

また、ユーザーが提供するライブラリはサポートされていません。 サポートされているライブラリの一覧については、Pythonコネクターの概要を参照してください。


入力

フィールド説明
名前ステップの簡単な説明を入力します。 例:Transform dates
入力項目コードに渡す入力フィールドを定義します。 フィールドを1つずつ手動で追加するか、JSONサンプルを指定して入力を定義できます。

注:Dateおよびdatetimeデータはstringとして渡されます。 例を確認します
出力フィールドOutputデータツリーを作成するフィールドを定義します。 フィールドを1つずつ手動で追加するか、JSONサンプルを指定して出力を定義できます。
コードカスタムPythonスクリプト。 スクリプトを記述する際は、次の点に注意してください:
  • コードはmain関数内に記述する必要があります
  • main関数に指定できるパラメーターは1つだけです。 このパラメーターは、入力フィールドとして定義された変数を含むPython dictである必要があります。 例を確認します
  • データを出力フィールドに渡すには、定義した出力スキーマと一致するキーを持つ辞書をreturnします。 例を確認します
  • このアクションにはいくつかの制限事項があります

入力データと出力データの操作

この例では、入力フィールドのデータにスクリプト内でアクセスし、定義済みの出力フィールドに渡す方法を示します。

アクションの設定が次のようになっているとします:

入力フィールド出力フィールド
このアクションには、次のフィールドが入力フィールドとして定義されています:
  • x
  • y
  • z
このアクションには、次のフィールドが出力フィールドとして定義されています:
  • shape
  • dimensions

この例では、main関数のパラメーターの名前はinputです。 これを使用して、アクションで定義された入力フィールドの値にアクセスします。

結果のデータを出力フィールドに渡すには、出力スキーマと一致するキーを持つ辞書を含めます。

python
import numpy as np

def main(input):
  # # Access the values of the action's Input fields
  x = input['x']
  y = input['y']
  z = input['z']
  size = (x, y, z)

  # Create a 3D NumPy array with random integers
  my3dArray = np.random.randint(low=0, high=100, size=size, dtype=int)
  print("/nRandom array/n", my3dArray)

  # Keep only elements that are multiples of 5
  modified3dArray = np.where(my3dArray % 5 == 0, my3dArray, 0)
  print("\Only multiples of 5\n", modified3dArray)

  shape = str(modified3dArray.shape)
  dimensions = modified3dArray.ndim

  # Pass shape and dimension values to Output fields
  return {"shape": shape, "dimensions": dimensions}

datetimeデータの操作

この例では、Pythonスクリプトでdatetimeデータを操作する方法を示します。

Date型の入力フィールドは、Pythonコードにstringsとして渡されます。 データが想定どおりの形式になるように、コードでこの点を考慮することをお勧めします。

python
import datetime as dt

def main(input)
  when = dt.datetime.fromisoformat(input['when'])
  # use datetime object when
  # ...
  # convert to custom format
  when_converted = when.strftime("%d %b %Y %H:%M:%S")
  return {"when": when_converted}

ログ記録

Developmentとデバッグに役立つように、Workatoではprintステートメントを使用して中間値をログに記録できます。 Workatoでは、main関数内のprintステートメントのみが表示されることに注意してください。 各printステートメントは新しい行として表示されます。

printmain関数内のprintステートメントの出力

出力

出力フィールドセクションで定義された各フィールドは、アクションのOutputデータツリーにデータピルを作成します。

例:次を出力フィールドとして定義したとします:

  • shapeinteger
  • dimensionsinteger

この場合、アクションのOutputデータツリーは次のようになります:

shell
└── Output
    ├── shape (integer)
    └── dimensions (integer)

出力フィールドにデータを渡す際にサポートが必要ですか。を確認してください。

エラースタックトレース

「Execute Python code」アクションがmain関数内のエラーにより失敗した場合、Workatoはコードのデバッグに役立つ関連するエラースタックトレースを表示します。

エラースタックトレースサンプルエラースタックトレース

Last updated: