我正在编写一个小脚本,它通过.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的原因正列表因为我的机器在任何时候都无法在内存中保存所有数据。
分区清单 –