龙空技术网

python3 序列化和反序列化相关解释及应用

运维木子李 573

前言:

当前兄弟们对“python 序列化”都比较看重,咱们都需要剖析一些“python 序列化”的相关文章。那么小编同时在网上汇集了一些有关“python 序列化””的相关知识,希望小伙伴们能喜欢,小伙伴们一起来了解一下吧!

1.文本序列化(JSON)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于跨平台数据传输和存储。Python中的json模块提供了序列化和反序列化JSON的功能。

示例:

import json# 序列化为JSON格式字符串data = {    "name": "John",    "age": 30,    "city": "New York"}json_str = json.dumps(data)print(json_str)  # 输出: {"name": "John", "age": 30, "city": "New York"}# 反序列化JSON格式字符串json_data = '{"name": "John", "age": 30, "city": "New York"}'data = json.loads(json_data)print(data)  # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}Plain Text

在上面的例子中,json.dumps()函数将Python数据结构转换为JSON格式的字符串,json.loads()函数将JSON格式的字符串转换为Python数据结构。

2.pickle和序列化本质

pickle模块是Python中用于对象序列化和反序列化的模块。它可以将Python对象转换为字节流,以及从字节流恢复为原始的Python对象。

示例:

import pickle# 序列化对象data = {    "name": "John",    "age": 30,    "city": "New York"}pickle_data = pickle.dumps(data)print(pickle_data)  # 输出: b'\x80\x04\x95\x1c\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x04name\x94\x8c\x04John\x94\x8c\x03age\x94K\x1e\x8c\x04city\x94\x8c\x08New York\x94u.'# 反序列化对象data = pickle.loads(pickle_data)print(data)  # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}Plain Text

在上面的例子中,pickle.dumps()函数将Python对象序列化为字节流,pickle.loads()函数将字节流反序列化为Python对象。

3.JSON数据类型和Python数据类型转换

json模块提供了将JSON数据类型和Python数据类型相互转换的功能。

示例:

import json# JSON数据类型转换为Python数据类型json_data = '[1, 2, 3, 4, 5]'data = json.loads(json_data)print(data)  # 输出: [1, 2, 3, 4, 5]# Python数据类型转换为JSON数据类型data = [1, 2, 3, 4, 5]json_data = json.dumps(data)print(json_data)  # 输出: "[1, 2, 3, 4, 5]"Plain Text

在上面的例子中,json.loads()函数将JSON格式的字符串转换为Python数据类型,json.dumps()函数将Python数据类型转换为JSON格式的字符串。

标签: #python 序列化