3

我一直在使用 appcfg.py 非常成功地上传数据,但我不确定如何bulkloader.yaml为重复属性设置导入转换或如何构建 CSV。例如:

在一个看起来像这样的帖子模型中:

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

bulkloader.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 的两步方法。首先创建一个模块(本质上是一个自定义转换文件),比如说 bulkmodify.py。然后在 bulkmodify 中定义一个将传入值转换为列表的转换

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

然后在您的bulkloader.yaml文件中为您的重复属性指定导入转换:

import_transform: bulkmodify.list_convert

另外不要忘记将您的模块包含在bulkloader.yaml文件顶部的导入列表中。

- import: bulkmodify

在我的输入 CSV 中,数据由多个引号构成,因此bulkloader 将它们作为具有多个列出值的单个属性引入

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