わかりましたので、 https://developers.google.com/appengine/docs/python/tools/uploadingdata#Configuring_the_Bulk_Loaderを読んだ後、import_transform
カスタム関数を使用できることを学びました。
それを念頭に置いて、これは私に正しい道を示しました:
... キーワード引数 bulkload_state を持つ 2 つの引数の関数。これにはエンティティに関する有用な情報が返されます。bulkload_state.current_entity は現在処理中のエンティティです。bulkload_state.current_dictionary、現在のエクスポート ディクショナリ ...
そこで、2 つの変数を処理する関数を作成しました。1 つはvalue
現在のエンティティの で、もう 1 つはbulkload_state
現在の行をフェッチできるようにする変数です。次のようにします。
def check_url(value, bulkload_state):
row = bulkload_state.current_dictionary
fields = [ 'Final URL', 'URL', 'Temporary URL' ]
for field in fields:
if field in row:
return row[ field ]
return None
これは、現在の行 ( bulkload_state.current_dictionary
) を取得して、どの URL フィールドが存在するかをチェックするだけです。存在しない場合は、単に を返しますNone
。
私の場合、次のbulkloader.yaml
ように設定するだけでこの関数を呼び出します。
- property: business_url
external_name: URL
import_transform: bulkloader_helper.check_url
注:external_name
実際に使用していない限り存在する限り、問題ではありません。複数の列を使用しています。
シンプル!