Python requests.post方法中data與json參數(shù)區(qū)別詳解
在通過requests.post()進(jìn)行POST請(qǐng)求時(shí),傳入報(bào)文的參數(shù)有兩個(gè),一個(gè)是data,一個(gè)是json。
data與json既可以是str類型,也可以是dict類型。
區(qū)別:
1、不管json是str還是dict,如果不指定headers中的content-type,默認(rèn)為application/json
2、data為dict時(shí),如果不指定content-type,默認(rèn)為application/x-www-form-urlencoded,相當(dāng)于普通form表單提交的形式
3、data為str時(shí),如果不指定content-type,默認(rèn)為text/plain
4、json為dict時(shí),如果不指定content-type,默認(rèn)為application/json
5、json為str時(shí),如果不指定content-type,默認(rèn)為application/json
6、用data參數(shù)提交數(shù)據(jù)時(shí),request.body的內(nèi)容則為a=1&b=2的這種形式,用json參數(shù)提交數(shù)據(jù)時(shí),request.body的內(nèi)容則為'{"a": 1, "b": 2}'的這種形式
示例
Django項(xiàng)目pro_1如下:
urls.py:
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index), ]
views.py :
from django.shortcuts import render, HttpResponse def index(request): print(request.body) """ 當(dāng)post請(qǐng)求的請(qǐng)求體以data為參數(shù),發(fā)送過來的數(shù)據(jù)格式為:b'username=amy&password=123' 當(dāng)post請(qǐng)求的請(qǐng)求體以json為參數(shù),發(fā)送過來的數(shù)據(jù)格式為:b'{"username": "amy", "password": "123"}' """ print(request.headers) """ 當(dāng)post請(qǐng)求的請(qǐng)求體以data為參數(shù),Content-Type為:application/x-www-form-urlencoded 當(dāng)post請(qǐng)求的請(qǐng)求體以json為參數(shù),Content-Type為:application/json """ return HttpResponse("ok")
在另一個(gè)Python程序中向http://127.0.0.1:8080/index/發(fā)送post請(qǐng)求,打印request.body觀察data參數(shù)和json參數(shù)發(fā)送數(shù)據(jù)的格式是不同的。
example1.py :
import requests r1 = requests.post( url="http://127.0.0.1:8089/index/", data={ "username": "amy", "password": "123" } # data='username=amy&password=123' # json={ # "username": "amy", # "password": "123" # } # json='username=amy&password=123' ) print(r1.text)
以上這篇Python requests.post方法中data與json參數(shù)區(qū)別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)解析與生成JSON數(shù)據(jù)
JSON文件是一種輕量級(jí)的數(shù)據(jù)交換格式,它采用了一種類似于JavaScript語法的結(jié)構(gòu),可以方便地在不同平臺(tái)和編程語言之間進(jìn)行數(shù)據(jù)交換,下面我們就來學(xué)習(xí)一下Python如何使用內(nèi)置的json模塊來讀取和寫入JSON文件吧2023-12-12Python的Django中將文件上傳至七牛云存儲(chǔ)的代碼分享
七牛云存儲(chǔ)可以幫助服務(wù)器轉(zhuǎn)存圖片等數(shù)據(jù),類似于Dropbox等存儲(chǔ)服務(wù),這里就帶給大家Python的Django中將文件上傳至七牛云存儲(chǔ)的代碼分享,需要的朋友可以參考下2016-06-06Pandas實(shí)現(xiàn)解析JSON數(shù)據(jù)與導(dǎo)出的示例詳解
其實(shí)使用pandas解析JSON?Dataset要方便得多,所以這篇文章主要為大家介紹了Pandas實(shí)現(xiàn)解析JSON數(shù)據(jù)與導(dǎo)出的具體方法,需要的小伙伴可以收藏一下2023-07-07用Python實(shí)現(xiàn)簡單的人臉識(shí)別功能步驟詳解
這篇文章主要介紹了用Python實(shí)現(xiàn)簡單的人臉識(shí)別功能步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Python實(shí)現(xiàn)字符串逆序輸出功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)字符串逆序輸出功能,結(jié)合具體實(shí)例形式分析了Python針對(duì)字符串的遍歷、翻轉(zhuǎn)、排序等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06實(shí)例講解Python腳本成為Windows中運(yùn)行的exe文件
在本篇文章里小編給大家分享了關(guān)于Python腳本成為Windows中運(yùn)行的exe文件的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-01-01