在 Google App Engine 查询中使用 IN 操作限制为每个查询列表中的 30 个项目,因此我必须找到一种方法将列表分解为多个列表,每个数组中最多包含 30 个项目,并查询每个子大批。
我想出了一个小解决方案来做到这一点,但它非常不雅,我不确定这是否是最好的方法。我是 Python 新手,所以我想知道如何正确或更优雅地做到这一点?
我正在查询User.query(User.email IN emails)
max_length = 30
iter_count = len(emails) / max_length
for i in range(iter_count):
min = i * max_length
max = (i + 1) * max_length
if min > len(emails):
break
if max > len(emails):
max = len(emails)
current_array = emails[min:max]
# query this array