[英]best way to process large data in chunks
例如,我喜歡超過 20000 條記錄。 和數據是這樣的
data = [{'id': 1} , {'id':2} , {'id':3} .... 20000]
現在我想以 1000 的塊上傳這些數據。 那么在 1000 塊中執行此操作的最佳方法是什么,這將產生最少的開銷。
最好的方法是使用生成器。 這些是通用迭代器,允許您使用自定義行為遍歷對象。
在您的情況下,一個簡單的解決方案是使用range
返回任何特定大小的生成器,例如:
range(1, len(data), 1000)
將生成值 1, 1001, 2001, ...
如果您在循環中使用它,則可以將特定范圍傳遞給處理程序方法,例如:
batch = 1000
for i in range(1, len(data), batch):
handle(data[i:i+batch])
您可以使用生成器批量處理數據
def generateChunks(data, batchsize):
for i in range(0, len(data),batchsize):
yield data[i:i+batchsize]
處理數據
chunks = generateChunks(data, 1000)
for i, chunk in enumerate(chunks):
print('chunk# ', i ,': ', chunk)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.