我需要做一个API调用,以及一个带有JSON字符串的文件以及关于该文件的详细信息。Python请求:在单个请求中发布JSON和文件
我试图使用Python请求LIB做到这一点:
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数据和文件有关。
有关如何使这项工作的任何想法?
似乎有一个错字在你的代码中:'var2'后面应该跟一个''',对吧? –
是的,修正了我的例子,谢谢! – oznu