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