使用Tika API和Python的Microsoft文档出现422错误

时间:2019-06-28 21:15:43

标签: python apache-tika

当尝试使用python中的/ tika端点通过Tika REST API处理Microsoft文档(.docx,.xlsx等)时,出现422错误。

我尝试通过确保在标头中正确传递内容类型以及将二进制文件传递到端点来解决此问题。

期望查看打印的.docx文件的内容。这段代码适用于.pdf和.txt,但所有Microsoft扩展都不起作用。

def tika(files):
    url = 'https://[server_url]/tika'
    headers = {'Content-Type' : mimetype,'Cache-Control': 'no-cache'}
    r = requests.put(url, files=files, headers = headers)
    return r

if __name__ == "__main__":     

    from tkinter import filedialog
    from tkinter import *
    import json

    root = Tk()

    root.filename = filedialog.askopenfilename(parent=root,initialdir="/",title='Please select a file to scan')

    fin = open(root.filename, 'rb')

    files = {'files':fin}

    print ('Parsing File: ')

    mimetype = mimetypes.MimeTypes().guess_type(root.filename)[0]

    print (mimetype)

    r = tika(files)
    print (r.content)
    print(r.status_code)

1 个答案:

答案 0 :(得分:0)

我必须使用/ tika / form端点,而不必在标头中声明content-type才能使工作正常。显然,请求python库正在以多部分形式发布文件。