【发布时间】:2014-04-05 21:14:42
【问题描述】:
我最近从 ext.db 切换到新的 NDB 并遇到了困难。
我想将结构化列表转换为 Json 包,以便发送到 iPhone 应用程序。我收到“不是 JSON 可序列化”错误。我想打包,以便所有用户最喜欢的水果都转换为Json。如果用户喜欢苹果、橙子和草莓,那么在 Json 的 favorites 字段中(代码如下)应该包含所有三种水果以及相关的分数和 cmets。
我知道to_dict存在,还有jsonProperty,但是不知道怎么申请。
以下是我所拥有的:
class FavFruits(ndb.Model):
fruit = ndb.StringProperty()
score = ndb.IntegerProperty()
comment = ndb.TextProperty()
class UserProfile(ndb.Model):
uid = ndb.StringProperty(required=True)
favFruits = ndb.StructuredProperty(FavFruits, repeated=True)
@classmethod
def makeJsonPackage(cls, uid):
fruitList = UserProfile.query(UserProfile.uid == uid).get()
entry = {}
entry["uid"] = fruitList.uid
entry["favorites"] = fruitList.favFruits
return (entry)
# down stream of the code
jsonData = UserProfile.makeJsonPackage(uid)
self.response.write(json.dumps(jsonData))
这不起作用.. 问题出在entry["favorites"] = fruitList.favFruits,因为我在将结构化列表转换为 Json 数据时遇到问题。
目标:发送favFruits 条目的整个列表(多个水果)。我想保留结构化列表,因为我想在用户请求时查询数据,比如“苹果”,这样我就可以显示水果(苹果)和相关的分数和 cmets。
任何帮助将不胜感激。
【问题讨论】:
标签: python json database google-app-engine app-engine-ndb