Python之JSON库的使用(一)

Python中数据的序列化与反序列化(JSON库的应用)

参考书籍《Python自动化测试实战》无涯著

Pyton中序列化指的是将Python中的数据结构(列表、元组、字典)编码转换为JSON格式的字符串;而反序列化指的是将JSON格式的字符串编码转换为Python中的数据结构(列表、元组、字典);

注意:元组经过序列化处理后,再通过反序列化处理后,数据类型不再是元组(而是列表);但列表、字典经过序列化处理后,再通过反序列化处理后,数据类型不变;

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
File Name: json_e.py
Time     : 2019/7/14 16:55
IDE      :PyCharm
Author   :Administrator
"""
import json

print('\n对列表进行序列化与反序列化处理:')
list1 = [1, 2, 3, 4, 5]
print('列表未序列化时的数据类型:{}'.format(type(list1)))

# 对列表list1进行序列化处理
list2str = json.dumps(list1)
print('列表list1序列化后的内容是{0}\n其类型{1}'.format(list2str, type(list2str)))

# 对字符串list2str进行反序列化处理
str2list = json.loads(list2str)
print('字符串list2str反序列化后的内容是{0}\n其类型{1}'.format(str2list, type(str2list)))

print('\n对元组进行序列化与反序列化处理:')
tuple1 = ('name', 'danxia', 'age', 18)
print('元组未序列化时的数据类型:{}'.format(type(tuple1)))

# 对元组tuple1进行序列化处理
tuple2str = json.dumps(tuple1)
print('元组tuple1序列化后的内容是{0}\n其类型{1}'.format(tuple2str, type(tuple2str)))

# 对字符串tuple2str进行反序列化处理
str2tuple = json.loads(tuple2str)
print('字符串tuple2str反序列化后的内容是{0}\n其类型{1}'.format(str2tuple, type(str2tuple)))

print('\n对字典进行序列化与反序列化处理:')
dict1 = {'name': 'danxia', 'age': 18}
print('字典未序列化时的数据类型:{}'.format(type(dict1)))

# 对字典dict1进行序列化处理
dict2str = json.dumps(dict1)
print('字典dict1序列化后的内容是{0}\n其类型{1}'.format(dict2str, type(dict2str)))

# 对字符串dict2str进行反序列化处理
str2dict = json.loads(dict2str)
print('字符串dict2str反序列化后的内容是{0}\n其类型{1}'.format(str2dict, type(str2dict)))

执行结果:


对列表进行序列化与反序列化处理:
列表未序列化时的数据类型:<class 'list'>
列表list1序列化后的内容是[1, 2, 3, 4, 5]
其类型<class 'str'>
字符串list2str反序列化后的内容是[1, 2, 3, 4, 5]
其类型<class 'list'>

对元组进行序列化与反序列化处理:
元组未序列化时的数据类型:<class 'tuple'>
元组tuple1序列化后的内容是["name", "danxia", "age", 18]
其类型<class 'str'>
字符串tuple2str反序列化后的内容是['name', 'danxia', 'age', 18]
其类型<class 'list'>

对字典进行序列化与反序列化处理:
字典未序列化时的数据类型:<class 'dict'>
字典dict1序列化后的内容是{"name": "danxia", "age": 18}
其类型<class 'str'>
字符串dict2str反序列化后的内容是{'name': 'danxia', 'age': 18}
其类型<class 'dict'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值