我如何将none_if_empty与create_deep_key一起使用? [英] How can I use none_if_empty with create_deep_key?

查看:156
本文介绍了我如何将none_if_empty与create_deep_key一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在查看 Where是Google App Engine bulkloader转换的参考页面吗?,并找出大部分bulkloader.yaml配置,但有一种情况除外。

我的产品之一有一个名为site的属性。如果存在,这对客户类型和网站类型来说是一个深层次的关键。现在我遇到的问题是与non_if_empty。在下面的情况下,它不会创建深度键。它总是没有回来。如果我删除了transform.none_if_empty,它将会失败,因为我的输入文件对这些值中的某些值有空值。我该如何做这项工作?如何使用none_if_empty和create_deep_key

   -  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)))

导出:
- 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文件示例
名称,siteCustomer,siteId
第一个,
秒,1,1


解决方案

这应该是

  import_transform:transform .none_if_empty(transform.create_deep_key(
('Customer','siteCustomer',True),
('Site',transform.CURRENT_PROPERTY,T rue)))

实际上,请将当前属性的导入值称为transform.CURRENT_PROPERTY。


I was looking at Where are the reference pages of the Google App Engine bulkloader transform? and figured out most of my bulkloader.yaml configuration with the exception of one case.

One of my Kinds 'Product' has a property called site. If present this is a deep key for a Customer Kind and a Site kind. Now the problem I am having is with the non_if_empty. In the below case it will not ever create the deep key. It always comes back none. If I remove the transform.none_if_empty it will fail as my input file has empty entires for some of these values. How can I make this work? How can I use none_if_empty with create_deep_key

- 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

解决方案

That should be

import_transform: transform.none_if_empty(transform.create_deep_key(
    ('Customer','siteCustomer', True),
    ('Site', transform.CURRENT_PROPERTY, True)))

Essentially, refer to the current property's import value as transform.CURRENT_PROPERTY.

这篇关于我如何将none_if_empty与create_deep_key一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆