如何解决GAE mapreduce和缺少属性
| 今天,我已经检查了适用于Python版本的GAE的mapreduce库,但似乎无法绕开它。我正在尝试遍历缺少属性的数据存储区实体,并添加它们。其中一个属性具有默认值,而其他属性则没有。没有默认值的属性是从另一个属性(电子邮件地址的md5总和加为用户名的两倍)计算得出的。 这是代码:def user_schema(entity):
entity.profile_id = hashlib.md5(string.strip(entity.username)).hexdigest()
entity.verified = False
operation.db.Put(entity)
运行此命令时,由于所有实体中缺少该属性,因此我得到了profile_id属性的BadValueError。我假设即使在mapreduce运行user_schema之前,这种情况仍在发生。如何将缺失的属性添加到实体?
解决方法
如果您添加了新属性并根据需要进行设置,但未提供默认值,则加载现有实体将导致您看到异常,因为这些实体缺少必需的属性。您需要首先添加不带
required
标志的属性,运行mapreduce更新旧实体,然后才将required
标志设置为True。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。