【发布时间】:2013-10-26 17:23:29
【问题描述】:
我需要执行 API 调用来上传文件以及包含文件详细信息的 JSON 字符串。
我正在尝试使用 python 请求库来执行此操作:
import requests
info = {
'var1' : 'this',
'var2' : 'that',
}
data = json.dumps({
'token' : auth_token,
'info' : info,
})
headers = {'Content-type': 'multipart/form-data'}
files = {'document': open('file_name.pdf', 'rb')}
r = requests.post(url, files=files, data=data, headers=headers)
这会引发以下错误:
raise ValueError("Data must not be a string.")
ValueError: Data must not be a string
如果我从请求中删除“文件”,它会起作用。
如果我从请求中删除“数据”,它会起作用。
如果我不将数据编码为 JSON,它就可以工作。
因此,我认为错误与在同一请求中发送 JSON 数据和文件有关。
关于如何让它发挥作用的任何想法?
【问题讨论】: