Python3调用Mindee API解析收据遇报错的问题排查
Mindee 收据解析接口调用报错修复方案
两类报错的根因
- 权限报错
PermissionError: [Errno 13] Permission denied:你传入open()函数的路径是文件夹路径/Users/test/PycharmProjects/PythonCrashCourse,不是目标图片的完整文件路径。程序无法直接以读文件模式打开文件夹,和管理员权限、文件访问权限设置无关。同时第一版代码里files字典的键写的是文件名"IMG_5800.jpg",不符合接口表单字段要求。 - 400状态码报错:接口返回信息已经明确说明,上传文件的必填表单字段名为document,你传的字段名是
file,属于接口不识别的未知字段,同时缺失必填的document字段,才会触发请求格式错误。
可直接运行的正确代码
import requests import json api_url = "https://api.mindee.net/v1/products/mindee/expense_receipts/v3/predict" # 替换为你的收据图片完整路径,必须精确到文件本身,不能只写文件夹路径 receipt_path = "IMG_5800.jpg" # 替换为你自己的有效API Token headers = {"Authorization": "Token 你的实际API密钥"} with open(receipt_path, "rb") as receipt_file: # 表单字段固定为document,不要自定义为file或者文件名 upload_files = {"document": receipt_file} resp = requests.post(api_url, files=upload_files, headers=headers) # 输出格式化后的JSON解析结果 parse_result = resp.json() print(json.dumps(parse_result, indent=2, ensure_ascii=False)) # 后续导出CSV时,直接从parse_result里提取商户名、消费金额、日期、商品明细等字段即可
注意:如果图片不在脚本当前运行目录,需要写完整绝对路径:
- Mac系统路径示例:
"/Users/test/PycharmProjects/PythonCrashCourse/IMG_5800.jpg"- Windows系统路径示例:
"C:/Users/test/PycharmProjects/PythonCrashCourse/IMG_5800.jpg"
路径必须以文件名+后缀结尾,不能停留在上级文件夹层级。
内容的提问来源于stack exchange,提问作者test1 1
相关产品推荐
相关产品推荐

