我们有一个ndb模型,我们想让json序列化.这些模型非常简单:
class Pasta(ndb.Model):
name = ndb.StringProperty()
type = ndb.StringProperty()
comments = ndb.JsonProperty()
Run Code Online (Sandbox Code Playgroud)
然后在处理程序方面,我们希望按照以下方式执行以下操作:
json.dumps(Pasta.query(Pasta.name=="Ravioli").fetch())并将其返回给客户端,但它继续抛出json解析错误,因为类Pasta不是json可序列化的.所以,问题是,我们必须实现__str__或__repr__还是有niftier办法做到这一点?
def to_dict(self):
return dict([(p, unicode(getattr(self, p))) for p in self.properties()])
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是如果一个属性没有值,它会将默认字符串设置为"None",这在我的客户端设备(Objective-C)中被解释为实际值,即使它应该被解释为零值.
如何修改上面的代码,同时保持其简洁性以跳过而不将属性写入具有None值的字典?