Можем ли мы включить как полезную нагрузку JSON, так и CSV-файл, используя form-data в POSTMAN?

#python #api #flask #postman #postman-collection-runner

#python #API #flask #postman #postman-collection-runner

Вопрос:

Я пытаюсь отправить запрос POST на мой Python Flask Server . Я попытался отправить CSV-файл, используя form-data опцию POSTMAN. Он был успешно получен сервером Flask.

Теперь я хочу отправить полезную нагрузку JSON вместе с файлом CSV, который будет состоять из User credentials .

Я попробовал приведенный ниже метод, но, похоже, он не работает. Хотя я получаю CSV-файл, но JSON все еще не получен Flask server .

Снимок экрана POSTMAN

 class Upload_File(Resource):

    def post(self):

        file_ = request.files['file']
        Q_data = pd.read_csv(file_, header=None, names=['Questions'])
        print(Q_data)      # successfully displays file content
        data = request.get_json(force=True)   # gives None
 

Редактировать

Проблема была в Flask коде. Рабочий код —

 class Upload_File(Resource):

    def post(self):

        file_ = request.files['file']
        Q_data = pd.read_csv(file_, header=None, names=['Questions'])
        print(Q_data)      # successfully displays file content
        username = request.form.get('username') # modified
        password = request.form.get('password') # modified
 

Комментарии:

1. Если это учетные данные пользователя, лучше использовать что-то вроде headers

2. Я хочу отправить JSON объект любого типа, не обязательно credentials . Это также может быть insensitive data .

Ответ №1:

Запрос анализируется как данные формы. Итак, вам нужно проверить, можете ли вы получить его через request.post dictionary.

Пример:

 class Upload_File(Resource):

    def post(self):

        file_ = request.files['file']
        Q_data = pd.read_csv(file_, header=None, names=['Questions'])
        print(Q_data)      # successfully displays file content
        data = request.post['admin']
 

Комментарии:

1. Проблема связана с Flask частью, а не POSTMAN . Спасибо, что заставили меня думать по-другому. Я попробовал некоторые модификации. Я заменил data на username = request.form.get('username') и аналогично для password .