使用 Tika API 和 Python 的 Microsoft 文档出现 422 错误
422 error with Microsoft Documents using Tika API and Python
我在尝试使用 python 中的 /tika 端点通过 Tika REST API 处理 Microsoft 文档(.docx、.xlsx 等)时遇到 422 错误。
我已尝试通过确保在 header 中正确传递内容类型并将二进制文件传递到端点来解决此问题。
期待看到打印的 .docx 文件的内容。此代码适用于 .pdf 和 .txt,但 Microsoft 扩展的 none 有效。
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)
我必须使用 /tika/form 端点而不是在 header 中声明 content-type 才能让事情正常进行。显然,请求 python 库将文件作为 multi-part 形式发布。
我在尝试使用 python 中的 /tika 端点通过 Tika REST API 处理 Microsoft 文档(.docx、.xlsx 等)时遇到 422 错误。
我已尝试通过确保在 header 中正确传递内容类型并将二进制文件传递到端点来解决此问题。
期待看到打印的 .docx 文件的内容。此代码适用于 .pdf 和 .txt,但 Microsoft 扩展的 none 有效。
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)
我必须使用 /tika/form 端点而不是在 header 中声明 content-type 才能让事情正常进行。显然,请求 python 库将文件作为 multi-part 形式发布。