0

我正在尝试一周如何从烧瓶 POST 选项中将输入文件提供给 Textract。

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

上面的代码给我带来了错误

TypeError: coercing to Unicode: need string or buffer, _io.BytesIO found

我尝试了一个小测试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 ?我试图到处寻找答案,但我做不到。

我现在应该解码还是编码?

4

1 回答 1

1

textract.process()需要一个字符串,但您io.BytesIO(request_file.read())改为发送。我不确定你为什么要使用io.BytesIO. 你能试一下吗:

textract.process(request_file.read())
于 2018-04-19T11:32:28.780 回答