亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python基于requests實(shí)現(xiàn)模擬上傳文件

瀏覽:100日期:2022-07-29 13:29:38

方法1:

1.安裝requests_toolbelt依賴庫(kù)

#代碼實(shí)現(xiàn)def upload(self): login_token = self.token.loadTokenList() for token in login_token: tempPassword_url = self.config[’crm_test_api’]+’/document/upload’ tempPassword_data = self.data_to_str.strToDict(’’’title:1.png course_name_id:63 course_id:1112 desc:7 doc_type:1 is_public:1’’’,value_type=’str’) files={’file’: (’1.png’, open(’C:UsersAcerPicturesScreenshots1.png’, ’rb’), ’image/png’)} tempPassword_data.update(files) m = MultipartEncoder(fields=tempPassword_data ) tempPassword_headers = {'Content-Type': m.content_type, 'token': token} tempPassword_request = requests.post(url=tempPassword_url,data=m,headers=tempPassword_headers) print(tempPassword_request.content)

2.組裝MultipartEncoder對(duì)象需要的參數(shù):將tempPassword_data的字段合并至files

1.files參數(shù)介紹:

1.字典key對(duì)應(yīng)file字段(我們系統(tǒng)是這樣,具體結(jié)合前端實(shí)際的字段為準(zhǔn)),如圖

Python基于requests實(shí)現(xiàn)模擬上傳文件

2.字典value里面的對(duì)象:

1.filename(服務(wù)器最終存儲(chǔ)的文件名)

2.filepath(具體的文件路徑,注意轉(zhuǎn)義),文件是以二進(jìn)制的形式進(jìn)行傳輸?shù)模赃@里傳輸時(shí)以二進(jìn)制的形式打開(kāi)文件并傳輸

3.content_type:具體結(jié)合前端實(shí)際的字段為準(zhǔn):一般可定義為: 文本(text)/圖片(image)等[/code][code]

3.tempPassword_data:為文件上傳時(shí)的附帶參數(shù)

strToDict方法:自己手寫(xiě)的一個(gè)字符串轉(zhuǎn)dict的方法

遇到的問(wèn)題:

Python基于requests實(shí)現(xiàn)模擬上傳文件

這個(gè)錯(cuò)誤是說(shuō),int對(duì)象不能被編碼,所以需要手動(dòng)將int對(duì)象轉(zhuǎn)換為str,所以我在此方法中定義了value_type這個(gè)參數(shù),用于將字典中的所有value轉(zhuǎn)換為str類型

#具體代碼實(shí)現(xiàn),僅供參考def strToDict(str_in,value_type=None): # value_type:轉(zhuǎn)換字典的value為指定的類型,未防止異常,目前僅支持str # ’’’將str轉(zhuǎn)換為dict輸出’’’ # ’’’將帶有time關(guān)鍵字的參數(shù)放到字符串末尾’’’ # print(str_in) if str_in: match_str = ’:’ split_str = ’n’ split_list = str_in.split(split_str) str_in_dict = {} for i in split_list:colon_str_index = i.find(match_str)if colon_str_index == -1: # ’’’處理firefox復(fù)制出來(lái)的參數(shù)’’’ match_str = ’t’ or ’ ’ colon_str_index = i.find(match_str)# ’’’去掉key、value的空格,key中的引號(hào)’’’str_in_key = i[:colon_str_index].strip()str_in_key = str_in_key.replace(’'’,’’)str_in_key = str_in_key.replace('’',’’)# 正則過(guò)濾無(wú)用key,只保留key第一位為字母數(shù)據(jù)獲取[]_str_sign = re.search(’[^a-zA-Z0-9_[]+]’, str_in_key[0])if str_sign is None: # 處理value中的空格與轉(zhuǎn)義符 str_in_value = i[colon_str_index + 1:].strip() str_in_value=str_in_value.replace(’’,’’) try: # 遇到是object類型的數(shù)據(jù)轉(zhuǎn)換一下 str_in_value=eval(str_in_value) except BaseException as error: str_in_value=str_in_value if value_type in [’str’,’string’]: str_in_value=str(str_in_value) else: str_in_value=str_in_value str_in_dict[str_in_key] = str_in_value return str_in_dict else: print('參數(shù)都沒(méi)有,還處理個(gè)球嘛') return None

3.請(qǐng)求時(shí)將headers的content設(shè)置為m.content_type,會(huì)設(shè)置headers的content_type為form—data,類型為str:

MultipartEncoder相關(guān)源碼:

Python基于requests實(shí)現(xiàn)模擬上傳文件

Python基于requests實(shí)現(xiàn)模擬上傳文件

4.請(qǐng)求時(shí)設(shè)置data為m,會(huì)輸出一個(gè)MultipartEncoder對(duì)象:

Python基于requests實(shí)現(xiàn)模擬上傳文件

方法2:

直接使用requests,無(wú)需依賴requests_toolbelt庫(kù)

過(guò)程大同小異,也是需要將字典的value轉(zhuǎn)換為str

注意:headers不要傳content_type字段,headers不要傳content_type字段,headers不要傳content_type字段

請(qǐng)求時(shí):data對(duì)應(yīng)附加參數(shù),files對(duì)應(yīng)files對(duì)象

#相關(guān)代碼def upload(self): login_token = self.token.loadTokenList() for token in login_token: tempPassword_url = self.config[’crm_test_api’]+’/document/upload’ tempPassword_data = self.data_to_str.strToDict(’’’title:1.png course_name_id:63 course_id:1112 desc:7 doc_type:1 is_public:1’’’,value_type=’str’) files={’file’: (’1.png’, open(’C:UsersAcerPicturesScreenshots1.png’, ’rb’), ’image/png’)} tempPassword_headers = {'token': token} tempPassword_request = requests.post(url=tempPassword_url,data=tempPassword_data,files=files,headers=tempPassword_headers) print(tempPassword_request.json())

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 可以免费观看欧美一级毛片 | 久久精品亚洲一区二区三区浴池 | 林美仑在线三级播放 | 91一区二区三区四区五区 | 香蕉视频在线观看国产 | 精品爱爱| 亚洲欧美日韩综合在线播放 | 五月天婷婷一区二区三区久久 | 国产孕妇做受视频在线观看 | 伊人久久久久久久久香港 | www.涩| 免费在线看黄视频 | 亚洲欧美日韩中文综合在线不卡 | 草比视频在线观看 | 国产情侣真实露脸在线最新 | 狠狠综合欧美综合欧美色 | 免费黄色在线看 | 欧美成人aa久久狼窝动画 | 欧美国产日韩在线播放 | 国产在线黄色 | 国产精品高清视亚洲一区二区 | 鲁大师视频在线www观看 | 青青草91视频 | 免费一级国产大片 | 中文字幕在线视频播放 | 小明看看在线观看 | 男人和女人全黄一级毛片 | 老司机成人免费精品视频 | 艾小青亚洲专区在线播放 | 国内黄色一级精品 | 久久精品国产6699国产精 | 国产在线一区二区三区 | 嗯 用劲 好爽 好深 免费视频 | 天天狠狠色噜噜 | 欧美日韩国产综合视频在线看 | 日本一级特黄毛片高清视频 | 久久这里只有精品免费看青草 | 国产 另类 在线 欧美日韩 | 特黄特色大片免费播放 | 日韩色影院 | 国产男女视频在线观看 |