序列化:把python的数据类型转换成json格式的字符串类型。反序列化:把json格式的字符类型串转换成python的数据类型。
代码演示:
# -- coding: utf-8 --
# @author : 软测小栈
# @file : 15序列化与反序列化.py
# @software: pycharm
"""
概念:
序列化:把python的数据类型转换成json格式的字符串类型。
反序列化:把json格式的字符类型串转换成python的数据类型。
使用场景:在接口测试过程中,数据传输时,发送请求时通常使用的时json格式的字符串,还有在断言字段时,
需要先将返回的内容反序列化为python的数据类型,如列表、字典等,然后在进行取值,如 assert result['code'] =='200'
result[0]="请求成功"等等
"""
import json
import requests
d = {"a": 1, "b": 2}
print("初始数据:", d, type(d)) #初始数据: {'a': 1, 'b': 2} <class 'dict'>
json1 = json.dumps(d) # 序列化操作 字典转转json格式的字符串
print("序列化之后的数据:", json1, type(json1)) # 序列化之后的数据: {"a": 1, "b": 2} <class 'str'>
d2 = json.loads(json1) # 反序列化操作 json格式的字符串转字典
print("反序列化之后的数据:", d2, type(d2)) #反序列化之后的数据: {'a': 1, 'b': 2} <class 'dict'>
params = '{"apiKey": "软测小栈", "keyWord": "蛇"}'
result = requests.get(url="https://api.apishop.net/common/chengyu/searchChengyu",
params='{"apiKey": "软测小栈", "keyWord": "蛇"}')
print(result.text)
print(type(result)) # <class 'requests.models.Response'>
print(type(result.json())) # dict
print(result.json()['statusCode'])
print(result.json()['desc'])
print(result.json()['result'])
print("=======================================")
data = {"apiKey": "111111", "phoneNum": "13000000000"}
print(type(data)) # 字典类型
result1 = requests.post(url="https://api.apishop.net/common/chengyu/searchChengyu",
json=json.dumps(data))
result2 = requests.post(url="https://api.apishop.net/common/chengyu/searchChengyu",
data='apiKey=111111&phoneNum=13000000000')
"""
可以参考源码释义【如下截图】:
用data参数提交数据时,request.body的内容则为a=1&b=2的这种形式,
用json参数提交数据时,request.body的内容则为'{"a": 1, "b": 2}'的这种形式。
"""
print(result1.text)
print(result2.text)