日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python-Requests.post方法中,传参data与json的区别

發布時間:2025/3/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-Requests.post方法中,传参data与json的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python3的requests.post()方法的源碼:

def post(url, data=None, json=None, **kwargs):r"""Sends a POST request.:param url: URL for the new :class:`Request` object.:param data: (optional) Dictionary (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`.:param json: (optional) json data to send in the body of the :class:`Request`.:param \*\*kwargs: Optional arguments that ``request`` takes.:return: :class:`Response <Response>` object:rtype: requests.Response"""return request('post', url, data=data, json=json, **kwargs)

從上述源碼中看出,參數中明確的參數是data和json
data與json2個參數,類型既可以是str,也可以是dict
區別如下:

不管json是str還是dict,如果不指定headers中的content-type,默認為application/json
data參數為dict時,如果不指定content-type,默認為application/x-www-form-urlencoded,相當于普通form表單提交的形式,此時數據可以從request.POST里面獲取,而request.body的內容則為a=1&b=2的這種形式,注意,即使指定content-type=application/json,request.body的值也是類似于a=1&b=2,所以并不能用json.loads(request.body.decode())得到想要的值
data參數為str時,如果不指定content-type,默認為application/json
用data參數提交數據時,request.body的內容則為a=1&b=2的這種形式,用json參數提交數據時,request.body的內容則為’{“a”: 1, “b”: 2}'的這種形式
因此,拿注冊接口來說明,有兩種實現方式:

總結

以上是生活随笔為你收集整理的Python-Requests.post方法中,传参data与json的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。