1. 程式人生 > 實用技巧 >介面自動化測試 之 request、 的 json 和 data傳參的 區別

介面自動化測試 之 request、 的 json 和 data傳參的 區別

json和dict(字典)
python中的dict型別要轉換為json格式的資料需要用到json庫:
import json

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

需要注意的是python中並沒有json型別這一說法,
通過json.dumps(<dict>)轉換的字典物件,最後得到的是一個字串物件,也就是說,在python中json格式的資料實際上就是一個字串

在通過requests.post()進行POST請求時,傳入報文的引數有兩個,一個是data,一個是json。

data與json既可以是str型別,也可以是dict型別。

區別:

1、不管json是str還是dict,如果不指定headers中的content-type,預設為application/json

2、data為dict時,如果不指定content-type,預設為application/x-www-form-urlencoded,相當於普通form表單提交的形式

3、data為str時,如果不指定content-type,預設為application/json

4、用data引數提交資料時,request.body的內容則為a=1&b=2的這種形式,用json引數提交資料時,request.body的內容則為'{"a": 1, "b": 2}'的這種形式

實際應用時候,需要根據後端服務處理的方式來確定

此處除了可以自行對dict進行編碼,你還可以使用json引數直接傳遞,然後它就會被自動編碼。這是 2.4.2 版的新加功能:

總結一下:

data:可以使用text方式和json方式(json需要轉換)

json:只能使用json方法