我一直非常成功地使用appcfg.py来upload_data,但我不确定如何在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注册吗?或者还有其他方法可以做到这一点吗?
答案 0 :(得分: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中,数据采用多个引号构成,因此批量加载程序将它们作为包含多个列出值的单个属性引入
key,"""tag1"",""tag2"",""tag3""", property3, etc.