PYSTRING( ) 関数

外部の Python スクリプトの関数によって計算された文字値を返します。Python によるデータ処理は Analytics の外部で行われます。

構文

PYSTRING("Py ファイル,Py 関数", 長さ <,フィールド|値 <,...n>>)
名前 種類 説明
Py ファイル、Py 関数

文字

実行する Python スクリプトの名前、カンマ、値を返す関数の名前。

たとえば、「myScript,myFunction」と指定します。

Python スクリプトを指定する場合、ファイル拡張子は省略してください。呼び出す関数から、同じ Python スクリプトやその他のスクリプトにある他の関数を呼び出すことができますが、実行するスクリプトはすべて、実行前に PYTHONPATH システム環境変数のフォルダーに入れておく必要があります。

詳細については、Python の Analytics 連携用設定を参照してください。

メモ

使用する Py関数は、Python の string オブジェクトを返す必要があります。

長さ 数値 返される文字列に割り当てられる長さ。
フィールド|値 <,...n>

省略可能

文字

数値

日付時刻

論理

Python 関数の引数として使用するフィールド、式、リテラル値から成るこのリスト。値は呼び出す関数に指定順に渡されます。

Python スクリプトの関数定義を満たすのに必要な数の引数を指定できます。

メモ

文字入力から先頭と末尾の空白を除去するには、ALLTRIM(str) のように ALLTRIM() 関数を使用します。詳細については、ALLTRIM( ) 関数を参照してください。

出力

文字。

基本的な例

"my test" が返されます。

PYSTRING('hello,main', 20, "my")

次の例は、文字列を入力として取り、その文字列に "test" を連結する外部 Python スクリプトです。

#! python
# hello.py content
def main(str):
    str2 = str + ' test'
    return(str2)

高度な例

部分文字列が返される

次の例では、Vendor_Name フィールドから最後の 2 文字が削除されて、削除後の部分文字列が返されます。

PYSTRING( "hello,sub_set", LENGTH(Vendor_Name), ALLTRIM(Vendor_Name), LENGTH(ALLTRIM(Vendor_Name)), 0, LENGTH(ALLTRIM(Vendor_Name)) - 2

次の例は、文字列(str)、文字列長(length)、2 つの桁位置(p1 と p2)を入力として取る外部 Python スクリプトです。この関数により、p1(位置 1)と p2(位置 2)の間にある部分文字列が返されます。

#hello.py content
def sub_set(str, length, p1, p2):
if p1 >= 0 and p2 < length and p1 < p2:
    str2 = str[p1:p2]
else:
    str2 = str
return str2
ACL のスクリプト作成ガイド 14.1