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

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

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

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

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

Google 有一个名为 GqlEncoder 的实用程序类,它向 simplejson 添加了对数据存储查询结果的支持,但它基本上使数据扁平化,破坏了层次结构。

有什么建议吗?

最佳答案

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

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

而代码的其余部分可以满足您的目的。那么,由于您不知道 GQL 查询包含的对象的 JS 数组(Python 列表),您希望如何表示它?目前尚不清楚,除了实体组(您正在完全恢复)之外,是什么赋予了它层次结构;是“ parent ”的问题吗?

无论如何,一旦澄清这一点,将该文件复制并编辑到您自己的代码中似乎是最好的(它的设计目的不是让您仅覆盖这一点)。

关于python - 从 App Engine 数据存储到 JSON 的分层数据输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1300694/

相关文章:

python - 保留出现 N 次或更多次的字符串

python - 我可以在 Python Tkinter Canvas 上对图像执行 'screenshot' 并将其保存在文件中吗?

python - Haskell 的惰性是 Python 生成器的优雅替代品吗?

javascript - 如何在 GAE 中使用 app.yaml 获取适用于静态文件的任何 url?

Python、Google App Engine 错误 : assert type(data) is StringType ,"write() argument must be string"

python - 对于 Pandas 的 value_counts() 循环(嵌套)

json - 我如何使用 Go 漂亮地打印 JSON?

ios - 当 JSON 输入表示 Codable 类型的多个子类时使用 Codable

java - JSON 数据的 Spring MVC 自定义转换器不起作用

google-app-engine - 如何从 GAE 的 blobstore 下载具有原始文件名的文件?