如何将查询结果提取到列表中?

时间:2013-06-18 20:32:26

标签: google-app-engine

我正在尝试将我的数据存储区查询的结果提取到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)

对此有一些较短的解决方案吗?

1 个答案:

答案 0 :(得分:1)

通过在GQL语句中指定字段(而不是*),您实际上正在运行projection query。如果您检查index.yaml文件,您应该看到开发服务器已自动生成索引以支持此查询。

通常,您将查询整个实体,然后根据需要迭代实体(在您的情况下构建列表),就像您已经完成的那样。

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