溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何request?post列表

發(fā)布時(shí)間:2022-02-14 09:46:31 來源:億速云 閱讀:329 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下python如何request post列表,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

request post 列表的方法

今天拿著已經(jīng)寫好的服務(wù)接口, 嘗試傳送一些列表, 發(fā)現(xiàn)傳送的結(jié)果跟實(shí)際傳送的數(shù)據(jù)并不一致,然后又開始了漫漫查資料的旅程。

原代碼

原代碼用來處理字典還是比較很成功的。

post:
url = 'http://127.0.0.1:5000/test'
data = {"text": '今天很開心', "lang": zh}
ret = requests.post(url,data=data) 
 
get:
txt = request.form['text']
lang = request.form['lang']
print(txt, lang)
 
print:

今天很開心 zh

但我想要傳送列表,比如

post:
url = 'http://127.0.0.1:5000/test'
data = {"text": '今天很開心', "data": [{'Text', 'a'}, {'Text', 'b'}]}
ret = requests.post(url,data=data)

類似于這種情況, 以上的方法就會失效, 會丟失部分?jǐn)?shù)據(jù), 具體原因是什么沒有去深究, 感興趣的小伙伴可以自己嘗試一下。

解決方案

1. 再按照原先那種以字典的方式進(jìn)行傳輸是不可以的了。

2. 我們需要變成字符串的方式進(jìn)行傳輸。

3. 一下是post, get的核心代碼

post:
    ret = requests.post(url, data=json.dumps([{'Text': 'hello'}, {'Text': 'world'}]))
get:
    print(request.data)
print:
    b'[{"Text": "hello"}, {"Text": "world"}]'

注意到, 這里獲取到的數(shù)據(jù)是字節(jié)碼,后續(xù)還需要轉(zhuǎn)換成字符串進(jìn)行進(jìn)一步處理。

如下:

text = bytes.decode(byte_data, encoding='utf-8')

request post 數(shù)據(jù)中有l(wèi)ist和dict方法

今天遇到python requests post數(shù)據(jù),

可是數(shù)據(jù)中有一段是這樣的

data = {"data1":"[{"code":"aaa"}]"}

requests.post數(shù)據(jù)是會提示未知錯(cuò)誤

#將列表的內(nèi)容提取出來,用json.dumps轉(zhuǎn)換一下
list_code = json.dumps([{"code":"aaa"}])
#然后賦值
data = {"data1":list_code} 
resp = reuqests.post(url,headers=header,data=data)

使用這個(gè)方法就可以了

以上是“python如何request post列表”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI