我使用以下代码将我的appengine数据存储区序列化为JSON
class DictModel(db.Model):
def to_dict(self):
return dict([(p, unicode(getattr(self, p))) for p in self.properties()])
class commonWordTweets(DictModel):
commonWords = db.StringListProperty(required=True)
venue = db.ReferenceProperty(Venue, required=True, collection_name='commonWords')
类Venue(db.Model): id = db.StringProperty(required = True) fourSqid = db.StringProperty(required = False) name = db.StringProperty(required = True) twitter_ID = db.StringProperty(required = True)
这将返回以下JSON响应
[
{
"commonWords": "[u'storehouse', u'guinness', u'badge', u'2011"', u'"new', u'mayor', u'dublin)']",
"venue": "<__main__.Venue object at 0x1028ad190>"
}
]
如何返回要显示的实际场地名称?
答案 0 :(得分:3)
首先,虽然这不完全是你的问题,但强烈建议使用simplejson来生成json,而不是试图自己将结构转换为json字符串。
要回答您的问题,ReferenceProperty只是作为Venue对象的引用。所以你只需按正常使用它的属性。
尝试类似:
cwt = commonWordTweets() # Replace with code to get the item from your datastore
d = {"commonWords":cwt.commonWords, "venue": cwt.venue.name}
jsonout = simplejson.dumps(d)