最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)requests發(fā)送/上傳多個(gè)文件的示例

 更新時(shí)間:2018年06月04日 09:13:46   作者:像風(fēng)一樣的自由  
今天小編就為大家分享一篇python實(shí)現(xiàn)requests發(fā)送/上傳多個(gè)文件的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1、需要的環(huán)境

Python2.X
Requests 庫(kù)

2、單字段發(fā)送單個(gè)文件

在requests中發(fā)送文件的接口只有一種,那就是使用requests.post的files參數(shù), 請(qǐng)求形式如下:

url = "http://httpbin.org/post" 
data = None 
files = { ... } 
r = requests.post(url, data, files=files) 

而這個(gè)files參數(shù)是可以接受很多種形式的數(shù)據(jù),最基本的2種形式為:

字典類(lèi)型

元組列表類(lèi)型

2.1、字典類(lèi)型的files參數(shù)

官方推薦使用的字典參數(shù)格式如下:

{ 
 "field1" : ("filename1", open("filePath1", "rb")), 
 "field2" : ("filename2", open("filePath2", "rb"), "image/jpeg"), 
 "field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"}) 
} 

這個(gè)字典的key就是發(fā)送post請(qǐng)求時(shí)的字段名, 而字典的value則描述了準(zhǔn)備發(fā)送的文件的信息;從上面可以看出value可以是2元組,3元組或4元組;

這個(gè)元組的每一個(gè)字段代表的意思一次為:

("filename", "fileobject", "content-type", "headers") 

缺省的話則會(huì)使用默認(rèn)值

除了上面的使用形式,其實(shí)requests還是支持一個(gè)更簡(jiǎn)潔的參數(shù)形式,如下

{ 
 "field1" : open("filePath1", "rb")), 
 "field2" : open("filePath2", "rb")), 
 "field3" : open("filePath3", "rb")) 
} 

這種形式的參數(shù)其等同效果如下, 其中filename是filepath的文件名:

{ 
 "field1" : ("filename1", open("filePath1", "rb")), 
 "field2" : ("filename2", open("filePath2", "rb")), 
 "field3" : ("filename3", open("filePath3", "rb")) 
} 

當(dāng)然,你還可以這樣發(fā)送一個(gè)文件請(qǐng)求

{ 
 "field1" : open("filePath1", "rb").read()) 
} 

這里的filename的值為field1

2.2、元組列表類(lèi)型的files參數(shù)

其實(shí)元組列表的形式與字典的形式基本一樣,除了最外層的包裝不一樣;而在requests內(nèi)部最終會(huì)把字典參數(shù)形式 轉(zhuǎn)換 為 元組列的形式。官網(wǎng)推薦的用法如下:

[ 
 ("field1" : ("filename1", open("filePath1", "rb"))), 
 ["field2" : ("filename2", open("filePath2", "rb"), "image/jpeg")], 
 ("field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"})) 
] 

列表里面的子項(xiàng)可以是元組,也可以是列表;同樣這里也支持簡(jiǎn)介的形式,如下:

[ 
 ("field1" : open("filePath1", "rb"))), ##filename 使用的是filepath的文件名 
 ("field2" : open("filePath2", "rb").read())) ##filename 使用的是鍵值,即 field2 
] 

3、單字段發(fā)送多個(gè)文件【即上傳文件時(shí),設(shè)置為多選了】

3.1、字典參數(shù)形式

{ 
 "field1" : [ 
   ("filename1", open("filePath1", "rb")), 
   ("filename2", open("filePath2", "rb"), "image/png"), 
   open("filePath3", "rb"), 
   open("filePath4", "rb").read() 
  ] 
} 

3.2、元組列表形式

[ 
 ("field1" , ("filename1", open("filePath1", "rb"))), 
 ("field1" , ("filename2", open("filePath2", "rb"), "image/png")), 
 ("field1" , open("filePath3", "rb")), 
 ("field1" , open("filePath4", "rb").read()) 
] 

上面2種形式發(fā)送的請(qǐng)求,所有的文件都會(huì)在同一個(gè)字段下,后臺(tái)服務(wù)只要從field1字段就可以獲取全部的文件對(duì)象

4、同時(shí)發(fā)送普通數(shù)據(jù)字段

上面介紹的是使用發(fā)送文件內(nèi)容請(qǐng)求,而有時(shí)候我們?cè)诎l(fā)送文件的同時(shí)還需要發(fā)送普通的數(shù)據(jù)字段,此時(shí)普通數(shù)據(jù)字段直接存在data參數(shù)中即可,如下:

data = {"k1" : "v1"} 
files = { 
 "field1" : open("1.png", "rb") 
} 
r = requests.post("http://httpbin.org/post", data, files=files) 

以上這篇python實(shí)現(xiàn)requests發(fā)送/上傳多個(gè)文件的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)絡(luò)股票信息爬取的demo

    使用python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)絡(luò)股票信息爬取的demo

    下面小編就為大家分享一篇使用python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)絡(luò)股票信息爬取的demo,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • python基于ID3思想的決策樹(shù)

    python基于ID3思想的決策樹(shù)

    這篇文章主要為大家詳細(xì)介紹了python基于ID3思想的決策樹(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python利用高階函數(shù)實(shí)現(xiàn)剪枝函數(shù)

    python利用高階函數(shù)實(shí)現(xiàn)剪枝函數(shù)

    這篇文章主要為大家詳細(xì)介紹了python利用高階函數(shù)實(shí)現(xiàn)剪枝函數(shù)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法

    Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法

    這篇文章主要介紹了Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法,涉及Python日期與時(shí)間計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 解決Python爬蟲(chóng)錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''

    解決Python爬蟲(chóng)錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsu

    這篇文章主要介紹了解決Python爬蟲(chóng)錯(cuò)誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Pytorch創(chuàng)建張量的四種方法

    Pytorch創(chuàng)建張量的四種方法

    Pytorch創(chuàng)建張量的4種方法主要有:torch.Tensor()、torch.tensor()、torch.as_tensor()、torch.from_numpy(),本文通過(guò)實(shí)例代碼介紹Pytorch創(chuàng)建張量的四種方法,需要的朋友可以參考下
    2023-05-05
  • 對(duì)python 合并 累加兩個(gè)dict的實(shí)例詳解

    對(duì)python 合并 累加兩個(gè)dict的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)python 合并 累加兩個(gè)dict的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python保留小數(shù)函數(shù)的幾種使用總結(jié)

    python保留小數(shù)函數(shù)的幾種使用總結(jié)

    本文主要介紹了python保留小數(shù)函數(shù)的幾種使用總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • pandas聚合分組的具體使用

    pandas聚合分組的具體使用

    使用數(shù)據(jù)庫(kù)時(shí),我們利用查詢操作對(duì)各列或各行中的數(shù)據(jù)進(jìn)行分組,可以針對(duì)其中的每一組數(shù)據(jù)進(jìn)行各種不同的操作,本文主要介紹了pandas聚合分組,感興趣的可以了解一下
    2024-03-03
  • Python中判斷對(duì)象是否為空的方法

    Python中判斷對(duì)象是否為空的方法

    在Python開(kāi)發(fā)中,判斷對(duì)象是否為“空”是高頻操作,但看似簡(jiǎn)單的需求卻暗藏玄機(jī),從None到空容器,從零值到自定義對(duì)象的“假值”狀態(tài),不同場(chǎng)景下的“空”需要精準(zhǔn)區(qū)分,本文將系統(tǒng)梳理Python中“空”的判定邏輯,揭示常見(jiàn)誤區(qū),并提供實(shí)用解決方案,需要的朋友可以參考下
    2025-04-04

最新評(píng)論

炉霍县| 阿拉善左旗| 泰顺县| 南宫市| 乌海市| 江永县| 鹤庆县| 柞水县| 波密县| 察雅县| 博湖县| 冷水江市| 古田县| 遵化市| 涿鹿县| 铜川市| 白玉县| 金门县| 平山县| 新绛县| 依安县| 贵阳市| 大余县| 大同县| 九寨沟县| 建德市| 天门市| 祁阳县| 五原县| 洛宁县| 大竹县| 涿州市| 文成县| 衡阳市| 清苑县| 呼伦贝尔市| 乐安县| 应城市| 陵川县| 泾川县| 皋兰县|