0

我为一个使用 GAE 的项目学习了一些 python,除了一件事之外,我已经弄清楚了一切。将 GAE 模型转换为 JSON 时,如何跳过 BlobProperty(例如,如果 Profile 模型具有 avatar 属性)?所以代替标准:

def to_dict(self):
    return dict([(p, unicode(getattr(self, p))) for p in self.properties()])

我需要类似的东西:

def to_dict(self):
    return dict([(p, unicode(getattr(self, p))) for p in self.properties() if type(p) is not db.BlobProperty])

但这对我不起作用。我正在查看这个线程,它非常相似,但我无法让它适用于我的情况。我可能在 Python 中做错了什么。有什么想法吗?

4

1 回答 1

0

db.Model.properties() 将字符串的字典返回到属性和字典。iter只产生键。所以 type(p) 总是会是一个字符串。如果你想键和值使用db.Model.properties().items()代替。数据库模型。

而是尝试类似:

def to_dict(self):
  return dict([(p, unicode(getattr(self, p))) for p,t in self.properties().items() if type(t) is not db.BlobProperty])
于 2013-03-21T22:24:37.110 回答