使用python中的Requests.PUT发送csv文件[400客户端错误:错误请求]

时间:2016-04-14 12:20:43

标签: python http request put

我正在尝试使用“请求”模块发送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()

对我做错了什么的想法?

1 个答案:

答案 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'
                                      })

这次有用吗?