Python 从键列表中获取对象的最佳方法是什么?

Python 从键列表中获取对象的最佳方法是什么?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我想从它们的关键点列表中提取所有对象。还有比我现在做的更好的方法吗 list_of_objs = [] for obj_key in list_of_keys: this_obj = db.get(obj.key) list_of_objs.append(this_obj) 不熟悉您的特定应用程序(具体地说是db .get),但您可能需要考虑列表理解。 list_of_objs = [db.get(obj.key) for obj in list_of_keys] 您可以使用

我想从它们的关键点列表中提取所有对象。还有比我现在做的更好的方法吗

list_of_objs = []
for obj_key in list_of_keys:
    this_obj = db.get(obj.key)
    list_of_objs.append(this_obj)

不熟悉您的特定应用程序(具体地说是db .get),但您可能需要考虑列表理解。

list_of_objs = [db.get(obj.key) for obj in list_of_keys]

您可以使用IN运算符

query = db.Query()
list_of_objs = query.filter('__key__ IN', ','.join(list_of_keys))
这个(或类似的东西)应该可以完成这项工作

根据数据库,这样的查询是可能的。get可以接受密钥列表并在单个批中获取密钥,这将更快

list_of_objects = db.get(list_of_keys)

gae数据存储就像一本字典。。。不是一个实际的数据库。。。我想至少…看看这里的文档:我认为在这种情况下+1。。。如果appengine支持itI,这显然是首选,我认为这适用于我的特定情况,但我非常确定IN查询的限制为30。使用长度为N的列表的IN查询本质上与使用=进行N个单独查询并合并结果相同。i、 e.一点也不有效。这里只需注意,如果有人在使用ndb:
list\u of\u entities=ndb.get\u multi(list\u of\u key)
list_of_objects = db.get(list_of_keys)