我正在查看Where are the reference pages of the Google App Engine bulkloader transform?并找出我的bulkloader.yaml大部分配置,但一个案例除外。
我的一个'种类'产品'有一个名为site的属性。如果存在,这是客户类型和站点类型的深层密钥。现在我遇到的问题是使用non_if_empty。在下面的例子中,它不会创建深层密钥。它总是没有回来。如果我删除transform.none_if_empty,它将失败,因为我的输入文件的某些值为空。我怎样才能做到这一点?如何在create_deep_key
中使用none_if_empty- property: site
external_name: site
export_transform: transform.key_id_or_name_as_string
import_transform: transform.none_if_empty(transform.create_deep_key(('Customer', 'siteCustomer', True),
('Site', 'siteId', True)))
export:
- external_name: siteCustomer
export_transform: transform.key_id_or_name_as_string_n(0)
- external_name: siteId
export_transform: transform.key_id_or_name_as_string_n(1)
Product Bulkloader File Example
name,siteCustomer,siteId
first,,
second,1,1
答案 0 :(得分:1)
那应该是
import_transform: transform.none_if_empty(transform.create_deep_key(
('Customer','siteCustomer', True),
('Site', transform.CURRENT_PROPERTY, True)))
基本上,将当前属性的导入值称为transform.CURRENT_PROPERTY。
答案 1 :(得分:0)
所以我仍然不知道我在这里缺少什么,但我的工作是:
来自google.appengine.ext.bulkload导入转换
def create_deep_key(* path_info): f = transform.create_deep_key(* path_info)
def create_deep_key_lambda(value, bulkload_state):
try:
return f(value, bulkload_state)
except:
return None
return create_deep_key_lambda