Как отправить xlsx файл запросом на веб-сервис и получить ответ?
Хочу написать веб-сервис, который будет принимать на вход excel файл и отправлять ответ в виде измененного функцией на веб-сервере excel файл. Например, у меня есть excel файл:
Я отправляю его на веб-сервер и хочу получить в ответ такой файл ("значение": оборот/3):
Ответы (1 шт):
Автор решения: Exord
→ Ссылка
Отправить можно, как вариант так:
files = {'upload_file': open('file.xlsx','rb')}
r = requests.post(url, files=files)
Естественно вместо url, подставляете свой роут бэкенда, который обрабатывает запросы.
На бэкенде (например фласке) нужно сделать ручку которая принимает файл в пост запросе.
Далее:
- Парсите ваш файл через pandas.
- Пробегаете по колонке оборот. Совершаете некие манипуляции с данными. И пишете в новый list с итоговыми значениями.
- Создаёте в датафрейме pandas новую колонку значение и пишете в неё результаты через цикл по листу с результатами.
- После всех манипуляций. Сохраняете в какую нибудь директорию с результатами на сервере. Метод pandas.DataFrame.to_excel() для этого подойдёт.
- Если будете использовать/используете Flask, то используйте метод send_from_directory. С указанием пути до этого файла. Соответственно результат посылаете через return роута.
return send_from_directory('path_to_file', filename)
Вроде этого достаточно.

