我有一个很大的JSON,我需要批量发送1MB。我怎么能在python中做到这一点?任何帮助表示赞赏。
这是代码。
价值是整个大JSON。
for key, value in attributeJs.iteritems() :
data = value
headers = {'Content-Type' : 'application/json'}
try:
requests.packages.urllib3.disable_warnings()
r = requests.post(url=URL_ATTRIBUTE, headers=headers, verify=False, data=data, timeout=(15,20))
答案 0 :(得分:1)
您可以尝试使用块编码请求,将数据作为生成器发送,如下所示:
def generator():
for key, value in attributeJs.iteritems():
yield value
headers = {'Content-Type' : 'application/json',
'Transfer-encoding':'chunked'}
requests.packages.urllib3.disable_warnings()
r = requests.post(url=URL_ATTRIBUTE, headers=headers, verify=False,
data=generator(), timeout=(15,20), stream=True)
并且一次获得1MB:
r.iter_content(chunk_size=1000000) # 1MB = 1000000 Bytes
答案 1 :(得分:0)
您可以使用requests
流式传输数据with open('massive-body', 'rb') as f:
requests.post('http://some.url/streamed', data=f)