我正在尝试将我的数据存储区查询的结果提取到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)
对此有一些较短的解决方案吗?
答案 0 :(得分:1)
通过在GQL语句中指定字段(而不是*
),您实际上正在运行projection query。如果您检查index.yaml
文件,您应该看到开发服务器已自动生成索引以支持此查询。
通常,您将查询整个实体,然后根据需要迭代实体(在您的情况下构建列表),就像您已经完成的那样。
如果您拥有大型实体,投影查询可能会很有用,但通常只需要查询一些特定属性,这样可以减少延迟/减少带宽等。