我正在編寫一個小腳本,它通過.csv循環,將每一行作爲字典存儲在文件中,並將該字典發送到API中的一個API 1維列表。Python:從任意大小的數據集創建相同大小的列表
import csv
import requests
with open('csv.csv', 'rU') as f:
reader = csv.reader(f, skipinitialspace=True)
header = next(reader)
for row in reader:
request = [dict(zip(header, map(str, row)))]
r = requests.post(url, headers = i_headers, json = request)
print str(reader.line_num) + "-" + str(r)
的request
名單看起來是這樣的:
[
{
"id": "1",
"col_1": "A",
"col_2": "B",
"col_3": "C"
}
]
這個腳本工作,但我通過一個800萬行的.csv循環,而這種方法簡直是太慢了。我想通過每個API調用發送多行來加速此過程。我正在使用的API允許每次發送最多100行。
如何更改此腳本以增量構建包含100個字典的列表,然後將其發佈到API,然後重複。什麼我會發送給該API的樣本應該是這樣的:
這是行不通的[
{
"id": "1",
"col_1": "A",
"col_2": "B",
"col_3": "C"
},
{
"id": "2",
"col_1": "A",
"col_2": "B",
"col_3": "C"
},
...
...
...
{
"id": "100",
"col_1": "A",
"col_2": "B",
"col_3": "C"
}
]
一件事是建立一個巨大的列表,然後將其分割成大小100的原因正列表因爲我的機器在任何時候都無法在內存中保存所有數據。
分區清單 –