【发布时间】:2021-05-05 11:36:36
【问题描述】:
我正在使用 python3 请求库通过带有此 (sn-p) 代码的 REST-API 发布文件:
headers = self.getHeaders()
data = {'options': '{"category":"' + category + '", "keywords":"' + keywords + '", "collectionId":"' + kolid + '", "fileName": "' + filename.decode('utf-8') + '", "dynamicMetadata":' + meta.decode('utf-8') + '}'}
query = {'file': ("'./" + filepath + "'", open(filepath, 'rb'))}
response = requests.post(self.getHost() + "files", headers=headers, data=data, files=(query))
虽然这确实上传了几乎所有文件,但其中一些文件被遗漏了,因为 api 返回了一个错误,指出它无法处理文件名。查看日志时,所有这些文件的文件名中都有 UTF-8 特殊字符(德语变音符号),例如“Ä Ö Ü
例如在我的 linux 系统上,文件存储在 pictures/attachments/Briefing E-Mailing Verlängerung.pdf 在日志中,路径显示为 “图片/附件/简报电子邮件 Verl\u00e4ngerung.pdf”
在 python 中打印文件路径(打印文件路径)时,我得到一个干净的输出,所以文件路径/文件名必须被请求命令损坏?
(版本):
Python 3.5.3、请求 (2.12.4)、Debian 9.13 4.9.0-14-amd64
【问题讨论】:
标签: python utf-8 python-requests