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

时间:2014-06-02 16:39:38

标签: 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)

4 个答案:

答案 0 :(得分:6)

根据documentation db.get可以接受密钥列表并在一个批次中获取它们,这将更快。

list_of_objects = db.get(list_of_keys)

答案 1 :(得分:-1)

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

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

答案 2 :(得分:-1)

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

答案 3 :(得分:-2)

您可以使用IN运算符

query = db.Query()
list_of_objs = query.filter('__key__ IN', ','.join(list_of_keys))

这(或类似的东西)应该做的工作

根据docs这样的查询是可能的