Python序列化模块JSON与Pickle

yizhihongxing

Python序列化模块JSON与Pickle

序列化是将数据结构或对象转换为序列化的格式,以便它可以存储或传输。Python提供了两个标准序列化模块,即JSON和Pickle。JSON模块序列化的结果是字符串,它适用于网络传输,而Pickle模块序列化的结果是二进制,它适用于本地存储。

JSON模块

JSON是一种轻量级数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。

JSON序列化模块提供了四个功能:dumps、dump、loads、load。其中,dumps接受一个Python对象并将其转换为JSON字符串,dump也接受一个Python对象,然后将其转换为JSON格式,并存储在文件对象中。loads接受一个JSON格式的字符串并返回一个Python对象,load也是类似的功能,只是从文件对象中读取JSON格式的数据。

示例1

import json

person = {
    'name': 'Tom',
    'age': 20,
    'isMarried': False,
    'hobbies': ['swimming', 'reading']
}

# 将python对象person序列化为JSON字符串
json_str = json.dumps(person, indent=4)

print(json_str)

示例2

import json

person = {
    'name': 'Tom',
    'age': 20,
    'isMarried': False,
    'hobbies': ['swimming', 'reading']
}

# 将python对象person序列化为JSON格式并将其写入文件中
with open('person.json', 'w') as f:
    json.dump(person, f)

# 从文件中读取JSON数据并反序列化为python对象
with open('person.json', 'r') as f:
    data = json.load(f)

print(data['name'])
print(data['age'])
print(data['hobbies'])

Pickle模块

Pickle是Python的一个序列化模块,它将Python对象序列化为二进制格式,并在需要时将其反序列化回来。相对于JSON序列化模块,Pickle能够处理更多的Python对象类型,但其序列化后的数据无法被其他语言解析。

Pickle序列化模块提供了四个功能:dumps、dump、loads、load,和JSON序列化模块的用法非常相似。

示例1

import pickle

person = {
    'name': 'Tom',
    'age': 20,
    'isMarried': False,
    'hobbies': ['swimming', 'reading']
}

# 将python对象person序列化为二进制数据
binary_data = pickle.dumps(person)

print(binary_data)

# 将二进制数据反序列化为python对象
data = pickle.loads(binary_data)

print(data['name'])
print(data['age'])
print(data['hobbies'])

示例2

import pickle

person = {
    'name': 'Tom',
    'age': 20,
    'isMarried': False,
    'hobbies': ['swimming', 'reading']
}

# 将python对象person序列化为二进制格式并将其写入文件中
with open('person.pickle', 'wb') as f:
    pickle.dump(person, f)

# 从文件中读取二进制数据并反序列化为python对象
with open('person.pickle', 'rb') as f:
    data = pickle.load(f)

print(data['name'])
print(data['age'])
print(data['hobbies'])

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python序列化模块JSON与Pickle - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Python标准异常和异常处理详解

    Python标准异常和异常处理详解 什么是异常? 在 Python 编程中,异常是指在程序执行期间发生的错误。Python 中的异常是一个事件,它会在程序执行期间出现,并导致程序中断。 Python 标准异常 Python 标准库定义了一些基本的异常类型,这些异常类型都是标准的 Python 类。下面是部分常见的异常类型: ArithmeticError(一…

    python 2023年5月13日
    00
  • Python语法快速入门指南

    Python语法快速入门指南 简介 本指南旨在帮助初学者快速了解Python语言的基础语法,并提供一些常用的语法和操作的示例说明。 数据类型 数字类型 Python支持三种数字类型:整数(int)、浮点数(float)和复数(complex)。 # 整数 a = 10 b = -20 # 浮点数 c = 3.1415926 d = -0.618 # 复数 e…

    python 2023年5月31日
    00
  • 详解python中字典的循环遍历的两种方式

    下面我来详细讲解“详解Python中字典的循环遍历的两种方式”的完整攻略,让你轻松掌握这个知识点。 1. 字典(dictionary)概述 字典是Python中常用的内置数据类型之一,它采用键值对(key:value)的形式存储数据,具有以下几个特点: 可变性:字典是可变的数据类型,可以动态地添加、删除和修改其中的元素。 无序性:字典中的元素是无序的,所以不…

    python 2023年5月13日
    00
  • python requests 使用快速入门

    Python requests使用快速入门 Python requests是一个流行的HTTP库,它可以让我们轻松地发送HTTP请求,并处理响应。本文将介绍如何使用Python requests库进行HTTP请求,并提供一些示例说明。 安装requests库 在使用requests库之前,我们需要先安装它。我们使用pip命令来安装requests库,如下所示…

    python 2023年5月14日
    00
  • python实现从pdf文件中提取文本,并自动翻译的方法

    安装必要的库 要实现从PDF文件中提取文本并自动翻译的功能,我们需要安装以下两个第三方库: PyPDF2:用于从PDF文件中提取文本; googletrans:用于实现自动翻译功能。 可以使用以下命令安装它们: pip install PyPDF2 googletrans 实现从PDF中提取文本 使用PyPDF2库可以很容易地从PDF文件中提取文本。下面是一…

    python 2023年6月5日
    00
  • Python爬虫之UserAgent的使用实例

    在Python爬虫中,User-Agent是一个重要的HTTP请求头,用于告诉服务器发送请求的客户端类型和版本号。本文将详细讲解Python爬虫之User-Agent的使用实例,包括如何设置User-Agent、如何随机生成User-Agent等。 设置User-Agent 在Python中,我们可以使用requests库设置User-Agent。以下是一个…

    python 2023年5月15日
    00
  • Python密码学概述双倍强度加密教程

    下面是Python密码学概述双倍强度加密教程的完整攻略,包括了基本概念、双倍强度加密的实现方法以及两个示例。 基本概念 密码学是一门研究如何保证信息安全的学科,主要涉及到加密算法、解密算法和密钥管理,其中密钥是加密解密的关键。 双倍强度加密是一种保护数据安全的强大技术,它将一个密钥与另一个密钥结合起来,产生更高的安全性。 双倍强度加密的实现方法 Python…

    python 2023年5月14日
    00
  • 如何使用Python进行爬虫开发?

    使用Python进行爬虫开发需要以下步骤: 安装Python和相应的第三方库(比如requests和beautifulsoup4) 选择目标网站,并使用requests库发送GET请求获取HTML页面 使用beautifulsoup4库解析HTML页面,提取需要的信息 将提取的信息存储到本地文件或数据库中 以下是两个示例说明: 示例1:爬取新闻网站的标题和链…

    python 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部