Requests中POST 请求参数中data和json的区别

最近在使用Python中Request库的时候,很多小朋友问post请求中data和json的区别:

假如我们请求的body是json方式,请求的数据为payload

payload = {'key1': 'value1', 'key2': 'value2'}

如果是低版本的Requests的话,我们只有使用导入json来把字典dict转化成json:

import json

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}

r = requests.post(url, data=json.dumps(payload))

此处除了可以自行对 dict 进行编码,你还可以使用 json 参数直接传递,然后它就会被自动编码。这是 2.4.2 版的新加功能:

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}

r = requests.post(url, json=payload)

总结一下:

data:可以使用text方式和json方式(json需要转换)

json:只能使用json方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章