【发布时间】:2014-01-23 15:25:36
【问题描述】:
我已经彻底搜索了stackoverflow,但我找不到这个问题的答案。
我正在尝试为 asana API python wrapper 做出贡献。这个想法是将文件作为任务的附件发布。
在 asana API docs 中,指定上传的文件“需要是实际文件,而不是字节流。”
我有一个这样的 curl 请求:
curl -u <api_key>: --form "file=@file.txt" https://app.asana.com/api/1.0/tasks/1337/attachments
它工作得很好。
我现在打算用request 做所有事情。在请求文档中,他们谈论的只是“上传多部分编码的文件”。
所以这是我的实际问题:
“上传多部分编码的文件”是否与文件“需要是实际文件,而不是字节流”冲突?
如何正确地将工作 curl 转换为请求帖子?
我的目标是
request.post('https://app.asana.com/api/1.0/tasks/task_id/attachments', auth=(<api_key>, ""), data={'file': open('valid_path_to_file.ext', 'rb')})
运行时,我得到 p>
{"errors":[{"message":"file: File is not an object"}]}
来自体式。
【问题讨论】:
-
我已经能够解决问题了。错误在
data={'file': open('valid_path_to_file.ext', 'rb')}。应该是files={'file': open('valid_path_to_file.ext', 'rb')}。相当琐碎。
标签: python post curl python-requests asana