У меня есть API, к которому я обращаюсь, используя пакет python requests
. Когда запрашиваемый набор данных превышает внутренний предел размера, стандартная конечная точка возвращает ошибку, а код ответа указывает на использование их конечной точки «экспорта», которая вместо этого обслуживает CSV.
Однако возвращенные данные CSV являются, как мне кажется, зашифрованной строкой.
Вот пример вывода (обрезанного, чтобы показать начало и конец)
{"Data":"VGVybWluYWwgTnVtsQ2FsZW5kYXIgVGltZSxUcmFuc2FjdGlvbiBUeXBlLE...GhvbGRlciB0cmFuc2FjdGlvbiIsIkRlbmllZCI="}
То, что я до сих пор пробовал, - это извлечение строки, а затем пробовал различные комбинации кодирования / декодирования , но ничто не дает читабельный CSV.
Заголовки ответа:
{'Content-Length': '556895',
'Content-Type': 'application/json; charset=utf-8',
'Server': 'Microsoft-HTTPAPI/2.0',
'Date': 'Fri, 24 Apr 2020 17:13:31 GMT'}
У кого-нибудь есть опыт с этим? Я ожидал байтовую строку или байтовый массив, но это всего лишь строка utf-8.
Прошу прощения, если я упускаю это из виду или упустил важную информацию.
РЕДАКТИРОВАТЬ: Мой запрос выглядит следующим образом:
api = myAPIObject()
api.authenticate(username, passwd)
CR_ID = 5341345
res = requests.post(api.CR_export_url,
headers=api.auth_header,
data={'ID': CR_ID,
'ExportFormat': 'CSV',
'ShouldIncludeHeaders':True})
Это в соответствии с документацией API.