欢迎关注公众号 学习资料不会少
序列化与反序列化
在JSON库中,序列化和反序列化的处理分为两部分,一部分是对具体列表数据的处理,另外一部分是对文件内容的处理。
json.dumps
将Python的数据类型比如元组,字典,列表数据转化为字符串类型。
import json
def test_dumps():
"""
序列化操作
"""
list = [1,2,3,4,5]
print('before',type(list))
list_str = json.dumps(list)
print('after',type(list_str), list_str,)
dict = {'username':'xiaoming','age':10}
print('before',type(dict))
dict_str = json.dumps(dict)
print('after',type(dict_str),dict_str)
tuple = (1,2,3,4)
print('before',type(tuple))
tuple_str = json.dumps(tuple)
print('after',type(tuple_str),tuple_str) #[1,2,3,4]
元组类型数据转换后的字符串形式为 [] 。
json.loads
反序列化操作,将字符串类型转化为python的列表,字典类型。
注意:不能反序列化为元组类型。
def test_loads():
"""
反序列化
"""
list_str = '[1,2,3,4,5,6]'
list = json.loads(list_str)
print('list:',type(list),list)
tuple_0 = ("5","4","3","2","1")
tuple_str = json.dumps(tuple_0)
tuple = json.loads(tuple_str)
print('after tuple:',type(tuple),tuple) #元组序列化之后返回列表类型
json.dump
序列化Json数据并存储到文件中。
import requests
import json
def test_dump():
"""
json.dump 将json数据 存入到文件中
:return:
"""
r = requests.get(url='http://39.107.96.138:3000/api/v1/
topics')
# dump
json.dump(r.json(),open('data.json',mode='w+'))
json.load
从文件中读取数据并反序列化为python数据格式。
data.json
{
"success": true,
"data": [
{
"id": "5e66e7c31a33065b8763dc0d",
"author_id": "5d67af5c692231084ca27cd0",
"tab": "share",
"create_at": "2020-03-10T01:05:07.410Z",
"author": {
"loginname": "user8",
"avatar_url": "//gravatar.com/avatar/d6e3a97ea77c
3cc3fe9493150f349088?size=48"
}
}
]
}
读取data.json数据并转换为python格式
import requests
import json
def test_load():
data = open('./data.json',mode='r',encoding='utf8')
d = json.load(data)
print('d:',type(d),d)
json数据与python数据类型转换
默认情况下,执行以下方式转换数据
往期精彩文章
喜报来了!凡猫学员薪资最高16K!
金融行业软件测试介绍
2020年为什么大家都开始学习自动化测试?
学习测试开发前 你需要掌握的python 代码水平
1万+软件测试人员都在学的精品课程免费送,大家别错过