0

我正在尝试将数据存储区查询的结果提取到 python 中的列表中。然后,我尝试了类似的方法:

foo = db.GqlQuery("SELECT url FROM Ads").run()

foo = db.GqlQuery("SELECT url FROM Ads").fetch(10)

但两者都没有运气 - foo 只是空的。如何正确获取结果?\

编辑:好的,我设法通过使用使其工作:

someList = []
q = db.GqlQuery("SELECT url FROM Ads")

for p in q.run(limit=None, batch_size=1000):
    someList.append(p.url)

有一些更短的解决方案吗?

4

1 回答 1

1

通过在 GQL 语句中指定字段(而不是*),您实际上是在运行投影查询。如果你检查你的index.yaml文件,你应该看到开发服务器已经自动生成了一个索引来支持这个查询。

通常,您将查询整个实体,然后根据需要遍历实体(在您的情况下构建一个列表),就像您所做的那样。

如果您有大型实体,投影查询可能很有用,但通常只需要查询一些特定属性,这将减少延迟/减少带宽等。

于 2013-06-18T21:20:47.577 回答