2013-10-27 64 views
0

我需要發送重複的數據請求。正如我聽到我不能發送重複,因爲請求使用字典,我不能在字典中得到重複。如何用python中的重複數據發送請求?

什麼,我需要獲得(來自小提琴手嗅日誌)

------WebKitFormBoundaryJm0Evrx7PZJnQkNw 
Content-Disposition: form-data; name="file[]"; filename="" 
Content-Type: application/octet-stream 


------WebKitFormBoundaryJm0Evrx7PZJnQkNw 
Content-Disposition: form-data; name="file[]"; filename="qwe.txt" 
Content-Type: text/plain 

example content of file qwe.txt blablabla 

我的腳本:

requests.post(url, files={'file[]': open('qwe.txt','rb'), 'file[]':''}) 

=>只拿到這個(日誌從提琴手)。一個文件[]消失。

--a7fbfa6d52fc4ddd8b82ec8f7055c88b 
Content-Disposition: form-data; name="file[]"; filename="qwe.txt" 

example content of file qwe.txt blablabla 

我想:

requests.post(url, data={"file[]":""},files={'file[]': open('qwe.txt','rb')}) 

但其不:文件名= 「」 作爲內容型

--a7fbfa6d52fc4ddd8b82ec8f7055c88b 
Content-Disposition: form-data; name="file[]" 

--a7fbfa6d52fc4ddd8b82ec8f7055c88b 
Content-Disposition: form-data; name="file[]"; filename="qwe.txt" 
Content-Type: text/plain 

example content of file qwe.txt blablabla 

有什麼辦法在python-請求手動添加呢?

回答

1

requests 1.1.0開始,您可以使用元組列表而不是字典作爲files參數傳遞。在每個元組中的第一個元素是提交的多部分形式的名稱,可以由內容遵循任一,或通過選擇含有文件名,內容和(任選地)內容類型的另一元組,那麼你的情況:

files = [('file[]', ("", "", "application/octet-stream")), 
     ('file[]', ('qwe.txt', open('qwe.txt','rb'), 'text/plain'))] 
requests.post(url, files=files) 

應該產生你描述的結果。

+0

喜歡它,它的工作原理!謝謝你,你太棒了! – Emily

相關問題