Как реализовать CURL -o в Python, используя запрос или aoihttp - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужно получить URL с определенными заголовками и параметрами в моем коде python, а затем записать в файл Excel. Я пытаюсь код ниже, но получаю сообщение об ошибке ниже, когда я пытаюсь открыть файл Excel. Ниже также приведена отредактированная версия CURL, которую я использую для успешного тестирования этой конечной точки API, которую я не могу скопировать в своем python коде

Python коде:

import requests
rheaders = {
            "Content-type": "application/json",
             "Accept": "application/json",
             "Authorization": "Token XXX",
}
url = "https://api.YYY"
r = requests.get(url, headers=rheaders)
with open("test.xlsx" , mode="wb") as output:
    output.write(r.content)

Ошибка : Excel не может открыть файл «test.xlsx», потому что формат файла или расширение файла не является допустимым. Убедитесь, что файл не был поврежден и что расширение файла соответствует формату файла.

Ассоциированный CURL, который нормально работает в терминале osx и записывает выходной файл без ошибок

curl -H "Accept: application/json; indent=4" -H 'Content-Type: application/json' -H 'Authorization: Token XXX' https://api.YYY --output ~/Downloads/output.xlsx

Я попытался заменить заголовок типа содержимого следующим:

Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Не повезло. Какие-либо предложения? Выше приведена моя попытка python запросов к библиотеке. Я также пытался использовать aiohttp

1 Ответ

0 голосов
/ 07 апреля 2020

Проблема в том, что Excel не может понять формат данных, которые записываются в файл, потому что Python сам по себе не поддерживает формат Excel. Попробуйте использовать библиотеку типа xlrd для записи в нее. Кроме того, вместо этого вы можете записать в файл .csv, который не потребует дополнительных библиотек и будет по-прежнему доступен для чтения в Excel

...