Прогресс бар при получении данных по API
Есть сайт, обращаемся к нему по api и протоколу GET. В ответ приходит много информации, это занимает время. Нужно добавить прогресс бар, который отображал бы прогресс получения данных. Как это можно сделать ?
import requests
import json
url = "https://cloud.roistat.com/api/v1/project/integration/order/list?project=44444444&key=4444444444"
payload = "{\"filters\":{\"and\":[[\"creation_date\",\">\",\"2020-06-02T21:00:00+0000\"],[\"creation_date\",\"<\",\"2020-07-01T21:00:00+0000\"]]},\"extend\":[\"visit\"],\"limit\":30000,\"offset\":0}"
headers = {'content-type': 'application/json'}
r = requests.request("GET", url, data=payload, headers=headers)
data = r.json()
with open('roi.txt', 'w') as outfile:
json.dump(data, outfile)
Я нашел библиотеку с прогресс барами tqdm, но так и не понял, как ее присобачить к requests
Ответы (1 шт):
Автор решения: eri
→ Ссылка
import sys
r = requests.request("GET", url, data=payload, headers=headers, stream=True)
size = r.headers.get('content-length',0)
load = 0
data = b''
for chunk in r.iter_content(8192):
data += chunk
load += len(chunk)
sys.stdout.write('\r%d/%d' % (load, size))
sys.stdout.flush()
data = json.loads(data)