我使用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])
但它不适合我。我看着this thread,这非常相似,但我无法让它适合我的情况。我可能在Python中做错了。有什么想法吗?
答案 0 :(得分:0)
db.Model.properties()将字符串的dict返回给属性,而dict。 iter 仅返回键。所以type(p)总是一个字符串。如果您想要键和值,请改用db.Model.properties().items()。 db.Model。
而是尝试类似:
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])