我正在尝试使用“请求”模块发送csv文件,但我不断收到" 400客户端错误:网址请求为"错误。根据我的说明书,这里有一个卷曲的例子;
curl -X PUT -H "Content-Disposition: attachment;filename=ABC.csv" -H "Content-Type: application/csv" -T ABC.csv http://.../api/dss/sites/1/vardefs
下面是我的python代码;
import requests
filepath = 'C:\...\ABC.csv'
with open(filepath) as WA:
mydata = WA.read()
response = requests.put('http://...../api/dss/sites/1/vardefs',
data=mydata,
headers = {'content-type':'application/csv', 'Content-Disposition': 'attachment;filename=Cu_temp.csv'},
params={'file': filepath}
)
response.raise_for_status()
对我做错了什么的想法?
答案 0 :(得分:0)
来自'requests'docs:
data - (可选)要发送的字典,字节或类文件对象 请求的正文。
尝试直接发送WA
(不先阅读),以进行流式上传。此外,始终建议在使用请求上传时以“rb”(读取二进制)模式打开文件。
(编辑以回应评论)
这样的事情:
import requests
filepath = 'C:\...\ABC.csv'
with open(filepath, 'rb') as WA:
response = requests.put('http://...../api/dss/sites/1/vardefs',
data=WA,
headers = {
'content-type':'application/csv',
'Content-Disposition': 'attachment;filename=Cu_temp.csv'
})
这次有用吗?