IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python--序列化和反序列化 -> 正文阅读

[Python知识库]Python--序列化和反序列化

通过文件操作,可将字符串写入到一个本地文件,但是无法将一个对象,如字典,列表,元组直接写入到一个文件里,这是就需要将这个对象进行序列化,然后写入文件。

设计一套协议,按照某种规则,把内存中的数据转换为字节序列,保存到文件,这就是序列化,反之,从文件的字节序列恢复到内存中,就是反序列化。

序列化: 将对象转换为字节序列。

反序列化:将字节序列转换为对象。

JSON模块

Python中JSON模块可用来实现数据的序列化和反序列化。

JSON:Javascript Object Notation ,一种轻量级的数据交换标准。JSON的本质是字符串。

使用JSON实现序列化

JSON提供了dump和dumps方法,将一个对象序列化。把对象转换为字符串,方法本身不具备将数据写入到文件的功能。

dumps( ) 方法测试

测试代码:

import json

names = [‘Jack’, ‘Dennis’, ‘Ritchie’, ‘Mike’, ‘Tony’]

# dumps 传入一个对象,转换为一个JSON字符串

result = json.dumps(names)

print(result)

print(type(result)) # <class ‘str’>

with open(‘json.txt’, ‘w’) as f:

    f.write(result)

列表被写入到文件json.txt
在这里插入图片描述

dump() 方法测试

将对象转换为字符串的同时,指定一个文件对象,把转换后的字符串写入到这个文件

# dump

fp =open(‘json2.txt’, ‘w’)

json.dump(names, fp)

fp.close()

# 或者

with open(‘json3.txt’, ‘w’) as f:

json.dump(names, f)

实现了对象序列化的同时写入文件。

创建文件效果如下:

在这里插入图片描述

json2.txt和json3.txt写入了同样的内容。

JSON实现反序列化

将JSON的字符串变成一个Python对象

# 反序列化 loads( )方法

with open(‘json.txt’, ‘r’) as f:

    content = f.read()

    print(content)

    print(type(content))

输出:

[“Jack”, “Dennis”, “Ritchie”, “Mike”, “Tony”]

<class ‘str’>

可以看到,读取输出的是字符串类型,并不是列表。

with open(‘json.txt’, ‘r’) as f:

    content = f.read()

    result = json.loads(content)

    print(type(result))

输出:

<class ‘list’>

可以看出,使用loads( )方法后将字符串转变为列表对象了。

# load( )方法

测试代码:

with open(‘json.txt’) as f:

    result = json.load(f)

    print(result)

    print(type(result))

输出:

[‘Jack’, ‘Dennis’, ‘Ritchie’, ‘Mike’, ‘Tony’]

<class ‘list’>

直接转换为列表对象了。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:21:00  更:2021-11-20 18:21:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:36:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码