1、json.dumps()和json.loads()是json格式处理函数
json.dumps()函数是将json(即dict)转化为str;
json.loads()函数是将str转化为json(即dict)。
2、requests模块发送请求有data、json、params三种携带参数的方法。
params在get请求中使用,data、json在post请求中使用。
params:字典或者字节序列,作为参数增加到url中,只能用于GET方法,不能使用在POST方法里面:
kv = {
"wd": "cisco"} # 拼接的内容用字典储存
response = requests.request("GET", "https://www.baidu.com/s", params=kv)
print(response.url) # https://www.baidu.com/s?wd=cisco
print(response.text)
data和json的区别:
1、json传参,不管参数是str还是dict,如果不指定headers中的Content-Type,默认为application/json
2、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())得到想要的值
3、data传参,参数为str时,如果不指定Content-Type,经过测试,requests模块并不会设置Content-Type
例:
import requests
import json
class TestRequest:
def test_get(self):
kv = {
"wd": "cisco"} # 拼接的内容用字典储存
response = requests.request("GET"<