gpt4 book ai didi

python - 使用 AppEngine bulkloader 加载 db.ListProperty()

转载 作者:行者123 更新时间:2023-11-28 17:52:52 25 4
gpt4 key购买 nike

我正在尝试使用 bulkloader 填充 db.ListProperty() 模型字段。

我正在使用如下导入转换函数:

def parse_array(fn):
def wrapper(value):
return [fn(seg) for seg in re.split("\\,", value) if not seg=='']
return wrapper

配置如下:

import_transform: lib.bulkloader_helpers.parse_array(int)

一些数组是空的,这些导致了问题。当我上传时:

BadValueError: May not use the empty list as a property value; property xxx is [].

呃哦。好的,让我们更改导入转换函数:

def parse_array(fn):
def wrapper(value):
args[fn(seg) for seg in re.split("\\,", value) if not seg=='']
if args==[]:
return None
else:
return args
return wrapper

现在空列表加载得很好。但是,当应用尝试加载模型时:

BadValueError: Property xxx is required

我也不能设置 db.ListProperty(required=False):

google.appengine.ext.db.ConfigurationError: required must be True.

有人建议出路吗?

谢谢,

贾斯汀

最佳答案

这是一个已知的 bug (Issue 3646)使用 App Engine 开发环境。

解决方法是更改​​(自版本 1.9.6 起)google.appengine.api.datastore_types.py 的第 1530 行,内容如下:

  if not values:

收件人:

  if not values_type is list and not values:

之后就可以正确插入了

[]

对于空数组,它应该可以工作。

关于python - 使用 AppEngine bulkloader 加载 db.ListProperty(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com