Ошибка 422 в Microsoft Documents с использованием Tika API и Python - PullRequest
0 голосов
/ 29 июня 2019

Я получаю ошибку 422 при попытке обработать документы Microsoft (.docx, .xlsx и т. Д.) Через TEST REST API с использованием конечной точки / tika в python.

Я попытался решить эту проблему, убедившись, что тип содержимого правильно передается в заголовке и что двоичный файл передается в конечную точку.

Ожидайте увидеть содержимое напечатанного файла .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 голосов
/ 29 июня 2019

Мне пришлось использовать конечную точку / tika / form и не объявлять тип содержимого в заголовке, чтобы все заработало.Очевидно, что библиотека Python запросов отправляет файл в виде формы, состоящей из нескольких частей.

...