Ошибка типа: приведение к Unicode: требуется строка или буфер, _io.BytesIO найдено

Я пытаюсь в течение недели, как дать входные файлы для Textract из опции POST колбу.

@app.route('/input', methods=['POST'])
def input():
    request_file = request.files.get('file')
    r = textract.process(io.BytesIO(request_file.read()))
    return r 

Код выше выдает ошибку

Ошибка типа: приведение к Unicode: требуется строка или буфер, _io.BytesIO найдено

И я попробовал небольшой тест с send_file чтобы проверить, действительно ли он принимает ввод и проверить, хорошо ли работает BytesIO в моем случае:

@app.route('/input', methods=['POST'])
def input():
    request_file = request.files.get('file')
    return send_file(io.BytesIO(request_file.read()),attachment_filename=
request_file.filename)

Приведенный выше код прекрасно работает для файлов PDF и отправки ответов (для загрузки файла PDF). И когда я попробовал.docx,.txt файлы, он показывает некоторые странные результаты на экране: PK

Мои вопросы, как я могу отправить это io.bytes(request_file.read()) как файл в Textract сейчас? Я пытался найти ответ везде, но не смог.

Я должен декодировать или кодировать сейчас?

1 ответ

textract.process() ожидает строку, но вы отправляете io.BytesIO(request_file.read()) вместо. Я не совсем уверен, почему вы используете io.BytesIO, Ты можешь попробовать:

textract.process(request_file.read())
Другие вопросы по тегам