from itertools import batched, islice for chunk in batched(rows, 500): insert_many(chunk) # Before 3.12: def chunks(it, size): it = iter(it) while batch := list(islice(it, size)): yield batch