从App Engine数据存储区输出到JSON的分层数据?

时间:2009-08-19 15:26:07

标签: python json google-app-engine google-cloud-datastore

我在App Engine数据存储区中有一个大的分层数据集。通过将数据存储在实体组中来保留层次结构,这样我就可以通过简单地知道顶部元素键来拉出整个树:

query = db.Query().ancestor(db.get(key))

问题:我现在如何将此数据作为JSON输出并保留层次结构?

Google有一个名为GqlEncoder的实用程序类,它将对数据存储区查询结果的支持添加到simplejson中,但它基本上会使数据变平,从而破坏层次结构。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我想你指的是this code而你提到的“扁平化”是由第51-52行完成的:

   if isinstance(obj, db.GqlQuery):
      return list(obj)

虽然其余代码适合您的目的。那么,您希望如何表示GQL查询,因为您不知道它包含的对象的JS数组(Python列表)是什么?除了实体组(你正在完全恢复)之外,还不清楚是什么赋予它层次结构;这是“父母”的问题吗?

无论如何,一旦澄清了,将该文件复制并编辑到您自己的代码中似乎是最好的(它不是为了让您只覆盖那一个花絮)。