3

私は appcfg.py を使用して upload_data をかなり成功させてきましたがbulkloader.yaml、繰り返されるプロパティのインポート変換を設定する方法や CSV を構造化する方法がわかりません。例えば:

次のようなポスト モデルでは、次のようになります。

class Post(models.Model):
  tags = ndb.StringProperty(repeated=True)

abulkloader.yamlは次のようになります。

transformers:
- kind: Post
  connector: csv

  property_map:
    - property: __key__
      external_name: key
      export_transform: transform.key_id_or_name_as_string
    - property: tags
      external_name: tags
      import_transform: ???

import_transformこれを登録するのに適切な APIはありますか? または、これを行う他の方法はありますか?

4

1 に答える 1

1

import_transform を使用して動作するように見える 2 段階のアプローチを試しました。最初にモジュール (基本的にはカスタム変換ファイル) を作成します。たとえば、bulkmodify.py としましょう。次に、bulkmodify で、入力値をリストに変換する変換を定義します

def list_convert(value):
    output=[value]
    return output

次に、bulkloader.yamlファイルで繰り返しプロパティのインポート変換を指定します。

import_transform: bulkmodify.list_convert

bulkloader.yamlまた、ファイル の上部にあるインポート リストにモジュールを含めることを忘れないでください。

- import: bulkmodify

私の入力 CSV では、データは複数の引用符で構成されているため、バルクローダーはそれらを複数のリストされた値を持つ単一のプロパティとして取り込みます

key,"""tag1"",""tag2"",""tag3""", property3, etc.
于 2013-01-16T17:39:11.307 に答える