Прогресс бар при получении данных по 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)
→ Ссылка