我正在尝试使用DeepL API。在文档中,他们谈到了这样的 cURL 命令:
curl https://api.deepl.com/v2/document \
-F "file=@mydoc.docx" \
-F "auth_key=<your-api-key>" \
-F "target_lang=DE"
我转换成requests这样。
import requests
files = {
'file': ('mydoc.docx', open('mydoc.docx', 'rb')),
'auth_key': (None, '<your-api-key>'),
'target_lang': (None, 'DE'),
}
response = requests.post('https://api.deepl.com/v2/document', files=files)
奇怪的是,cURL 命令确实可以从命令行工作,但我无法让 Python 代码工作。服务器不断返回以下数据:
{'message': 'Invalid file data.'}
该文档明确指出
因为请求包含文件上传,所以它必须是包含 multipart/form-data 的 HTTP POST 请求。
但据我所知,以上是正确的方法。我究竟做错了什么?