当前位置: 首页 > news >正文

Python序列化和反序列化

目录

一、什么是序列化和反序列化

二、json模块

1.dump\dumps

2.load\loads

三、pickle模块

1.dump \dumps

2.load\loads

四、pickle和json区别


一、什么是序列化和反序列化

  • 序列化是指将数据转化为可存储或传输的格式,(如,字节流、json、xml等)
  • 反序列化就是将序列化的数据恢复为python对象的过程

二、json模块

1.dump\dumps

import jsondata = {'name': 'Bob', 'age': 30}
serialized = json.dumps(data)  # 序列化为 JSON 字符串
with open('data.json', 'w') as f:json.dump(data, f)  # 序列化并保存到文件

2.load\loads

import jsonwith open('data.json', 'r') as f:deserialized = json.load(f)  # 从文件反序列化
data = json.loads(serialized)  # 从字符串反序列化

三、pickle模块

1.dump \dumps

import pickledata = {'name': 'Alice', 'age': 25}
serialized = pickle.dumps(data)  # 序列化为字节
with open('data.pkl', 'wb') as f:pickle.dump(data, f)  # 序列化并保存到文件

2.load\loads

import picklewith open('data.pkl', 'rb') as f:deserialized = pickle.load(f)  # 从文件反序列化
data = pickle.loads(serialized)  # 从字节反序列化

 四、marshal

从字节数据恢复为Python对象

import marshaldata = marshal.loads(serialized)

五、pickle、json、marshal区别

1.pickle是Python 独有的,且只支持转化为二进制文件,不易读取

2.json是跨系统的,跨语言兼容,支持多种格式存储或输出,一般是字典、列表、字符串、数字等

3.json支持前后端通信

4.需要高性能序列化是考虑marshal

http://www.dtcms.com/a/307038.html

相关文章:

  • 如何用Docker部署ROS2
  • (C++)C++类和类的方法(基础教程)(与Python类的区别)
  • c++之基础B之sort排序(第三个参数没有)(第二课)
  • Fiddler中文教程 从入门到进阶的网络抓包与接口调试实战指南
  • Python Pandas.merge_asof函数解析与实战教程
  • VUE前端
  • [Agent开发平台] API网关 | 业务领域 | DTO格式 | 分页令牌
  • React 服务端渲染(SSR)详解
  • 使用 cron 配合 Docker 实现定时任务
  • 神经网络的并行计算与加速技术
  • 模型相关类代码回顾理解 | BatchNorm2d\fc.in_features\nn.Linear\torchsummary
  • Haproxy 七层代理深度解析
  • Ubuntu 本地部署和使用 n8n 指南and ai almost anything
  • REST、GraphQL、gRPC、tRPC深度对比
  • Python Day19 时间模块 和 json模块 及例题分析
  • Dify案例2:基于Workflow的小红书笔记AI智能体以及AI绘图过程中遇到的问题
  • USRP捕获手机/路由器数据传输信号波形(上)
  • Vue面试
  • HTML基础P2 | JS基础讲解
  • 《汇编语言:基于X86处理器》第10章 复习题和练习
  • HTTPS基本工作过程:基本加密过程
  • 谈谈毕业工作一年后的变化
  • c#_文件的读写 IO
  • 关系型数据库架构最优选择:基于落霞归雁思维框架的分析
  • 7月30日作业
  • Spring Boot 数据源配置中为什么可以不用写 driver-class-name
  • 第六章第一节 TIM 定时中断
  • vue2中的过滤器filter
  • 1+1>2!特征融合如何让目标检测更懂 “场景”?
  • 深入理解数据库事务:从概念到实践