python-从嵌套字典请求multipart / form-data

时间:2017-03-03 06:39:17

标签: python python-requests

我需要POST一些multipart / form-data编码数据。 API要求将所有上载的数据嵌套在单个字段中。在JSON中,它看起来像这样:

{ "image": { "data": **binary data**, "id": 1234 } }

当我使用REST客户端时这很好用,但是我在使用python请求时遇到了麻烦。如果我使用data而不是files并且自己设置标题,我想我会更幸运,因为如果我使用files传递数据,似乎会在幕后进行一些神奇的转换。无论如何,我都会遇到错误。

obj = {
  "image": {
        "data": **binary data**,
        "id": 1234
    }
}
requests.post(url, {'Content-Type': 'multipart/form-data'}, data=obj) # AttributeError: 'dict' object has no attribute 'encode'
requests.post(url, files={'files':obj}) # AttributeError: 'dict' object has no attribute 'encode'

我尝试使用json.dumps对整个对象进行编码,并仅对image字典进行编码。在这两种情况下,它都会失败,因为二进制数据不可序列化。

这里的任何帮助将不胜感激。我实际上并不是一个Python开发者,所以如果我错过了一些明显的东西,请原谅我。

0 个答案:

没有答案