Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何将查询结果提取到列表中?_Google App Engine - Fatal编程技术网

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

Google app engine 如何将查询结果提取到列表中?,google-app-engine,Google App Engine,我正在尝试将数据存储查询的结果提取到python中的列表中。然后,我尝试了以下方法: foo = db.GqlQuery("SELECT url FROM Ads").run() 及 但两者都没有运气——福只是空的。如何正确获取结果\ 编辑:好的,我通过使用以下工具使其正常工作: someList = [] q = db.GqlQuery("SELECT url FROM Ads") for p in q.run(limit=None, batch_size=1000): someL

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

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

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

编辑:好的,我通过使用以下工具使其正常工作:

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

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

是否有较短的解决方案?

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

通常,您会查询整个实体,然后根据需要对实体进行迭代(在您的例子中是构建一个列表),就像您所做的那样


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

如果您确实需要可以使用fetch的列表。如果你不打算重新使用列表,我会考虑为什么你需要一个列表,不能只是迭代。Oh和list(q.run(limit=None,batch_size=1000))比for循环更简单。请注意文档中关于fetch的注释注意:此方法只是run()方法的一个薄包装,与直接使用run()相比效率更低,内存更密集。您应该很少需要使用fetch();它主要是为了方便您检索内存中完整的查询结果列表。
someList = []
q = db.GqlQuery("SELECT url FROM Ads")

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