Pythonアクション
概要
Pythonコードを記述することができるアクションです。
formula ではPythonの内包表記(ワンライナー)のみをサポートしているのに対し、 Pythonアクションでは内包表記に限らず複数行のPythonコードを記述することができます。

使い方
Pythonアクションではdef main(inputs):
の形式で定義されるmain関数を実行することができます。
main関数では引数(inputs)としてオブジェクトや配列などの構造体を渡すことができます。
main関数での処理結果は戻り値として return できます。
引数と戻り値のスキーマはそれぞれ事前に定義しておく必要があります。 ただしオブジェクトの中身までは定義する必要はありません。
使用可能な記法
Pythonアクションでは、以下に示すformulaと同様の記法と、print()
を使用することができます。
セキュリティの関係上、import
は使用できません。
型変換
bool(x)
:真偽値に変換する
str(x)
:文字列に変換する
int(x)
:整数に変換するfloat(x)
:浮動小数点数に変換する
chr(x)
:Unicodeコードを文字に変換
ord(x)
:文字をUnicodeコードに変換
hex(x)
:16進数文字列に変換
oct(x)
:8進数文字列に変換
json_dumps(obj)
:オブジェクトをJSON形式の文字列に変換json_loads(str)
:JSON文字列をオブジェクトに変換
数字
abs(x)
:x の絶対値を返すmax(iterable)
:最大値を返すmin(iterable)
:最小値を返すsum(iterable)
:合計値を返すpow(x, y)
:x の y 乗を返すround(x)
:x を四捨五入して返すfloor(x)
:x を切り捨てる(小数点以下切り捨て)ceil(x)
:x を切り上げる(小数点以下切り上げ)
all(iterable)
:すべての要素が真なら True を返すany(iterable)
:いずれかの要素が真なら True を返す
文字列
関数
re.search(pattern, string)
:正規表現で部分一致検索re.sub(pattern, repl, string)
:正規表現による文字列置換zenkaku_to_hankaku(s)
:【Anyflow独自関数】 全角文字を半角に変換hankaku_to_zenkaku(s)
:【Anyflow独自関数】 半角文字を全角に変換
大文字・小文字変換メソッド
.lower()
:すべて小文字に変換.upper()
:すべて大文字に変換.capitalize()
:先頭のみ大文字、他は小文字に変換.title()
:各単語の先頭を大文字に.swapcase()
:大文字と小文字を反転.casefold()
:比較用の小文字変換(より厳密)
配置・埋め込みメソッド
.center(width)
:中央寄せで文字列を埋める.ljust(width)
:左寄せで埋める.rjust(width)
:右寄せで埋める.zfill(width)
:左側をゼロで埋める
検索・位置取得メソッド
.find(sub)
:部分文字列の位置(見つからなければ -1).rfind(sub)
:右から検索.index(sub)
:見つからなければエラー.rindex(sub)
:右からの位置(エラー有).count(sub)
:出現回数
判定系メソッド
.startswith(prefix)
:指定文字で始まるか.endswith(suffix)
:指定文字で終わるか.isalnum()
:英数字かどうか.isalpha()
:アルファベットかどうか.isascii()
:ASCII 文字かどうか.isdecimal()
:10進数字か.isnumeric()
:数値文字か.isspace()
:空白のみか.islower()
:すべて小文字か.isupper()
:すべて大文字か.istitle()
:タイトル形式か
分割・結合メソッド
.split(sep)
:区切りで分割.rsplit(sep)
:右から分割.splitlines()
:改行で分割.partition(sep)
:最初の区切りで3つに分割.rpartition(sep)
:右からの区切りで分割"sep".join(iterable)
:文字列のリストを結合
変更・整形メソッド
.replace(old, new)
:文字列の置換.strip(chars)
:前後の指定文字を削除.lstrip(chars)
:左端を削除.rstrip(chars)
:右端を削除.expandtabs(n)
:タブをスペースに変換
配列・辞書
len(x)
:要素数を返すlist(x)
:リストに変換するdict(x)
:辞書に変換するtuple(x)
:タプルに変換するset(x)
:集合に変換する(重複を削除)zip(a, b)
:複数の配列を要素ごとに結合enumerate(x)
:インデックスと要素のペアを生成range(n)
:整数の範囲を生成(0 から n-1 まで)sorted(x)
:並び替えたリストを返すgroupby(iterable)
:【Anyflow独自関数】 指定キーでグループ化get_first(list)
:【Anyflow独自関数】 リストの先頭要素を返す
日付・時間
関数
str_to_date(str)
:【Anyflow独自関数】 文字列を日付型に変換str_to_datetime(str)
:【Anyflow独自関数】 文字列を日時型に変換utcnow()
:【Anyflow独自関数】 UTC 現在時刻を返すjstnow()
:【Anyflow独自関数】 日本時間の現在時刻を返す
メソッド
.add(**kwargs)
:指定した時間を加算(例:add(days=3)
)
.subtract(**kwargs)
:指定した時間を減算
.start_of("unit")
:指定単位("day", "month" 等)の開始時刻を取得
.end_of("unit")
:指定単位の終了時刻を取得
.format(format_string)
:指定書式で文字列に変換
.isoformat()
:ISO 8601 形式で出力
.is_future()
:未来の日付かどうか判定
.is_past()
:過去の日付かどうか判定
.weekday()
:曜日を数値(0〜6)で返す
.in_timezone("Asia/Tokyo")
:タイムゾーンを変換
.is_dst()
:夏時間かどうか判定
.is_utc()
:UTCかどうか判定
共通属性(日時・日付どちらでも使用可能)
.day
:日(1〜31).month
:月(1〜12).year
:年(例:2025).quarter
:四半期(1〜4).day_of_week
:曜日(0=月曜日, 6=日曜日).day_of_year
:年初からの日数(1〜366).week_of_month
:月の週番号(1〜5程度).week_of_year
:年の週番号(ISO 8601形式:1〜53).days_in_month
:その月の日数(28〜31)
時間属性(日時オブジェクトのみ使用可能)
.hour
:時(0〜23).minute
:分(0〜59).second
:秒(0〜59).microsecond
:マイクロ秒(0〜999999).int_timestamp
:UNIXタイムスタンプ(整数).float_timestamp
:UNIXタイムスタンプ(小数点付き).offset
:UTCからの秒単位オフセット(例:+32400秒).offset_hours
:UTCからの時間単位オフセット(例:+9.0).timezone_name
:タイムゾーン名(例:"Asia/Tokyo"
)
最終更新