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

requests.post()方法中data和json參數(shù)的使用

 更新時(shí)間:2022年02月14日 08:57:03   作者:sunny_happy08  
這篇文章主要介紹了requests.post()方法中data和json參數(shù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

requests.post()中data和json參數(shù)

json和dict

python中的dict類型要轉(zhuǎn)換為json格式的數(shù)據(jù)需要用到j(luò)son庫(kù):

import json?
<json> = json.dumps(<dict>)
<dict> = json.loads(<json>)

需要注意的是python中并沒有json類型這一說法,通過json.dumps(<dict>)轉(zhuǎn)換的字典對(duì)象,最后得到的是一個(gè)字符串對(duì)象,也就是說,在python中json格式的數(shù)據(jù)實(shí)際上就是一個(gè)字符串

>>> j = json.dumps(<dict>)
>>> type(j)
<class 'str'>

雖說json格式的數(shù)據(jù)在python中是以字符串的類型存在的,但是通過str(<dict>)工廠函數(shù)所得到的結(jié)果同json.dumps(<dict>)方法所得到的結(jié)果是不相同的

>>> d = {'a': 1, 'b': 2}
>>> d_d = {"a": 1, "b": 2}
>>> string = str(d)
>>> string_d = str(d_d)
>>> js = json.dumps(d)
>>> js_d = json.dumps(d_d)
>>> string == string_d
True
>>> js = js_d
True
>>> string == js
False
>>> string
"{'a': 1, 'b': 2}"
>>> js
'{"a": 1, "b": 2}'

可以看出來string和js的區(qū)別在于引號(hào)。對(duì)于可以作為json.loads(<str>)參數(shù)對(duì)象的字符串,除了要滿足字典類型的格式外,所有的字符串對(duì)象必須是雙引號(hào)。

requests.post()

在通過requests.post()進(jìn)行POST請(qǐng)求時(shí),傳入報(bào)文的參數(shù)有兩個(gè),一個(gè)是data,一個(gè)是json。

常見的form表單可以直接使用data參數(shù)進(jìn)行報(bào)文提交,而data的對(duì)象則是python中的字典類型;

而在最新爬蟲的過程中遇到了一種payload報(bào)文,是一種json格式的報(bào)文,因此傳入的報(bào)文對(duì)象也應(yīng)該是格式的;這里有兩種方法進(jìn)行報(bào)文提交:

import requests
import json?
url = "http://example.com"
data = {
? ? 'a': 1,
? ? 'b': 2,
}
# 1
requests.post(url, data=json.dumps(data))
# 2-json參數(shù)會(huì)自動(dòng)將字典類型的對(duì)象轉(zhuǎn)換為json格式
requests.post(url, json=data)

其它

在requests.get()方法中可以使用params參數(shù)來構(gòu)建url

有時(shí)候請(qǐng)求得到的結(jié)果可能呈現(xiàn)亂碼的狀態(tài),可以通過resp.encoding屬性查看網(wǎng)頁編碼方式,同時(shí)可以在獲取resp.text之前對(duì)resp.encoding='utf-8'賦值,這樣再次獲取的resp.text則會(huì)使用我們要求的編碼方式。

post請(qǐng)求中json和data的區(qū)別

post請(qǐng)求中,可以使用data傳遞參數(shù),也可以使用json傳遞參數(shù)

那么這兩種方式有什么區(qū)別呢?

如果參數(shù)為JSON數(shù)據(jù),可以直接傳入json參數(shù),它將自動(dòng)編碼并將Content-Type的置為application/json

payload = {'key1': 'value1', 'key2': 'value2'}?
r = requests.post("https://httpbin.org/post", json=payload)
print(r.text)

如果data傳遞的參數(shù)為字符串,例如【json.dumps(payload)】,則request對(duì)參數(shù)進(jìn)行url編碼,Content-Type的值為None,所以data傳字符串時(shí),一定要在header中指定Content-Type

payload = {'key1': 'value1', 'key2': 'value2'}
headers={"Content-Type": "application/json"}
r = requests.post("https://httpbin.org/post", headers=headers,data=json.dumps(payload))
print(r.text)

如果data傳遞的是字典、元組組成的列表或列表作為值的字典,則request對(duì)參數(shù)進(jìn)行url編碼,Content-Type的值為application/x-www-form-urlencoded

# 字典
payload1 = {'key1': 'value1', 'key2': 'value2'} ?
r = requests.post("https://httpbin.org/post", data=payload1)
# 元組組成的列表
payload2 = [('key1', 'value1'), ('key1', 'value2')] ?
r = requests.post("https://httpbin.org/post", data=payload2)
# 列表作為值的字典
payload3 = {'key1': ['value1', 'value2']} ?
r = requests.post("https://httpbin.org/post", data=payload3)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python批量調(diào)整Word文檔中的字體、段落間距及格式

    Python批量調(diào)整Word文檔中的字體、段落間距及格式

    這篇文章主要為大家詳細(xì)介紹了如何使用Python的docx庫(kù)來批量處理Word文檔,包括設(shè)置首行縮進(jìn)、字體、字號(hào)、行間距、段落對(duì)齊方式等,需要的可以了解下
    2025-03-03
  • Python嵌入C/C++進(jìn)行開發(fā)詳解

    Python嵌入C/C++進(jìn)行開發(fā)詳解

    在本篇文章里小編給大家分享了關(guān)于Python嵌入C/C++進(jìn)行開發(fā)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以參考下。
    2020-06-06
  • python爬取豆瓣電影排行榜(requests)的示例代碼

    python爬取豆瓣電影排行榜(requests)的示例代碼

    這篇文章主要介紹了python爬取豆瓣電影排行榜(requests),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python fileinput模塊如何逐行讀取多個(gè)文件

    Python fileinput模塊如何逐行讀取多個(gè)文件

    這篇文章主要介紹了Python fileinput模塊如何逐行讀取多個(gè)文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 創(chuàng)建pycharm的自定義python模板方法

    創(chuàng)建pycharm的自定義python模板方法

    今天小編就為大家分享一篇?jiǎng)?chuàng)建pycharm的自定義python模板方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 簡(jiǎn)單聊聊Python中的鴨子類型和猴子補(bǔ)丁

    簡(jiǎn)單聊聊Python中的鴨子類型和猴子補(bǔ)丁

    不知不覺使用python寫代碼已經(jīng)很長(zhǎng)時(shí)間了,下面這篇文章主要給大家介紹了關(guān)于python鴨子類型(duck?type)和猴子補(bǔ)丁(mokey?patching)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Python實(shí)現(xiàn)

    Python實(shí)現(xiàn)"驗(yàn)證回文串"的幾種方法

    這篇文章主要介紹了Python實(shí)現(xiàn)"驗(yàn)證回文串"的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python實(shí)戰(zhàn)之畫哆啦A夢(mèng)(超詳細(xì)步驟)

    Python實(shí)戰(zhàn)之畫哆啦A夢(mèng)(超詳細(xì)步驟)

    這篇文章主要介紹了Python實(shí)戰(zhàn)之畫哆啦A夢(mèng)(超詳細(xì)步驟),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python用裝飾器自動(dòng)注冊(cè)Tornado路由詳解

    python用裝飾器自動(dòng)注冊(cè)Tornado路由詳解

    這篇文章主要給大家介紹了python用裝飾器自動(dòng)注冊(cè)Tornado路由,文中給出了三個(gè)版本的解決方法,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • python 牛頓法實(shí)現(xiàn)邏輯回歸(Logistic Regression)

    python 牛頓法實(shí)現(xiàn)邏輯回歸(Logistic Regression)

    這篇文章主要介紹了python 牛頓法實(shí)現(xiàn)邏輯回歸(Logistic Regression),幫助大家更好的進(jìn)行機(jī)器學(xué)習(xí),感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論

黎川县| 信丰县| 资中县| 元江| 亚东县| 蓬安县| 顺昌县| 大城县| 资阳市| 海兴县| 德保县| 隆安县| 通渭县| 抚顺市| 巴里| 张家川| 徐水县| 南昌县| 鹤峰县| 中江县| 渝北区| 米泉市| 罗城| 察哈| 蒙自县| 望谟县| 即墨市| 特克斯县| 光泽县| 应用必备| 山西省| 色达县| 邵阳市| 安泽县| 惠来县| 崇文区| 兴宁市| 金湖县| 光山县| 肥乡县| 乳山市|