将 Appengine 数据存储区中的 ReferenceProperty 序列化为 JSON

发布于 2024-10-10 12:11:33 字数 817 浏览 2 评论 0原文

我使用以下代码将我的 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(必需=True) fourSqid = db.StringProperty(必需=False) 名称 = db.StringProperty(必需=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>"
  }
]

如何返回要显示的实际场地名称?

I am using the following code to serialize my appengine datastore to 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')

class Venue(db.Model):
id = db.StringProperty(required=True)
fourSqid = db.StringProperty(required=False)
name = db.StringProperty(required=True)
twitter_ID = db.StringProperty(required=True)

This returns the following JSON response

 [
  {
    "commonWords": "[u'storehouse', u'guinness', u'badge', u'2011"', u'"new', u'mayor', u'dublin)']",
    "venue": "<__main__.Venue object at 0x1028ad190>"
  }
]

How can I return the actual venue name to appear?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一念一轮回 2024-10-17 12:11:33

首先,虽然这不完全是你的问题,但强烈建议使用 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)

Firstly, although it's not exactly your question, it's strongly recommended to use simplejson to produce json, rather than trying to turn structures into json strings yourself.

To answer your question, the ReferenceProperty just acts as a reference to your Venue object. So you just use its attributes as per normal.

Try something like:

cwt = commonWordTweets()   # Replace with code to get the item from your datastore
d = {"commonWords":cwt.commonWords, "venue": cwt.venue.name}
jsonout = simplejson.dumps(d)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文