我正在把头撞到墙上,希望你能告诉我我在睡眠不足/菜鸟状态下忽略的非常简单的事情。
非常简单,我正在执行查询,并且在我的本地计算机上返回的对象类型与部署应用程序后返回的对象类型不同。
match = MatchRealTimeStatsModel.queryMatch(ancestor_key)[0]
在我的本地机器上,上面生成了一个 MatchRealTimeStatsModel 对象。所以我可以毫无问题地将以下内容运行到行:
logging.info(match) # outputs a MatchRealTimeStatsModel object
logging.info(match.match) # outputs a dictionary from json data
当上述两行在 Goggles 机器上运行时,我得到以下结果:
logging.info(match) # outputs a dictionary from json data
logging.info(match.match) # AttributeError: 'dict' object has no attribute 'match'
关于可能导致这种情况的任何建议?我清理了数据存储并尽我所能清理 GAE 环境。
编辑#1:添加 MatchRealTimeStatsModel 代码:
class MatchRealTimeStatsModel(ndb.Model):
match = ndb.JsonProperty()
@classmethod
def queryMatch(cls, ancestor_key):
return cls.query(ancestor=ancestor_key).fetch()
这是实际的调用:
ancestor_key = ndb.Key('MatchRealTimeStatsModel', matchUniqueUrl)
match = MatchRealTimeStatsModel.queryMatch(ancestor_key)[0]