Python GAE mapreduce和缺少的属性

Python GAE mapreduce和缺少的属性,python,google-app-engine,mapreduce,Python,Google App Engine,Mapreduce,今天我已经查看了Python版本的GAE的mapreduce库,我似乎无法完全理解它。我正在尝试迭代缺少属性的数据存储实体,并添加它们。其中一个属性有默认值,但另一个没有。没有默认值的属性是从另一个属性计算的(md5电子邮件地址的总和,同时作为用户名) 代码如下: def user_schema(entity): entity.profile_id = hashlib.md5(string.strip(entity.username)).hexdigest() entity.ve

今天我已经查看了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_模式之前就已经发生了。如何向实体添加缺少的属性?

如果已添加新属性并将其设置为必需属性,但未提供默认属性,则加载现有实体将导致出现异常,因为实体缺少必需属性。首先需要添加不带
required
标志的属性,运行mapreduce更新旧实体,然后才将
required
标志设置为True。

听起来该属性确实存在,但作为以前的类型?您以前是否声明过您的财产id?您是否可以显示实际的错误/堆栈跟踪,以及您如何定义实体上的属性?此外,您不需要签出mapreduce。它内置在SDK中。在app.yaml文件中,添加:-url:/mapreduce(/.*)\n脚本:$PYTHON\u LIB/google/appengine/ext/mapreduce/main.py\n登录:admin@Chris:属性不存在。我已经使用数据存储查看器来确保。无论如何,我已经绕过了这个问题,创建了一个模型类的副本,并从相关属性中删除了必需的参数。种子飞机:我不知道。mapreduce文档提到我必须检查它,所以我照做了。