序列化pickle&json模块

2023-11-13

序列化pickle&json模块

序列化:序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes
用于序列化的两个模块
json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换
pickle模块提供了四个功能:dumps、dump、loads、load

import pickle
data = {'k1':123,'k2':'Hello'}
# pickle.dumps 将数据通过特殊的形式转换位只有python语言认识的字符串
p_str = pickle.dumps(data)  # 注意dumps会把数据变成bytes格式
print(p_str)
# pickle.dump 将数据通过特殊的形式转换位只有python语言认识的字符串,并写入文件
with open('result.pk',"wb") as fp:
    pickle.dump(data,fp)
# pickle.load  从文件里加载
f = open("result.pk","rb")
d = pickle.load(f)
print(d)

Json模块也提供了四个功能:dumps、dump、loads、load,用法跟pickle一致

import json
# json.dumps 将数据通过特殊的形式转换位所有程序语言都认识的字符串
j_str = json.dumps(data) # 注意json dumps生成的是字符串,不是bytes
print(j_str)
#dump入文件 
with open('result.json','w') as fp:
    json.dump(data,fp)
#从文件里load
with open("result.json") as f:
    d = json.load(f)
    print(d)

json vs pickle:
JSON:
优点:跨语言(不同语言间的数据传递可用json交接)、体积小
json 只能dump一次,load一次,不然报错
缺点:json所有语言都支持,只支持是常规的数据类型,只能支持int\str\list\tuple\dict

Pickle:
优点:专为python设计,支持python所有的数据类型
缺点:只能在python中使用,存储数据占空间大,pickle支持python,支持python的所有数据类型,calss->object,function,datetime

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

序列化pickle&json模块 的相关文章

  • Python基础-48-文本处理(逗号分隔值CSV)

    前言 python自带模块csv可以将数据以csv格式输出到文件 也可以将csv数据读回 列表 元组数据写入和读取 代码部分 coding utf 8 import csv data也可以为列表 data 1 suner001 b12345
  • Python基础(3)——PyCharm介绍

    Python基础 3 PyCharm介绍 文章目录 Python基础 3 PyCharm介绍 课程目标 一 PyCharm的作用 二 下载和安装 2 1 下载 2 2 安装 三 PyCharm基本使用 3 1 新建项目 3 2 新建文件并书
  • python基础01元组 函数

    1 可变类型的数值变化 是通过方法来实现的 2 如果给一个可变类型的变量 赋值一个新的数据 引用 id 会修改 3 不可变类型数据可以作为字典的键值对key 可变类型不能 元组 小括号 只可增删不可修改 函数 def print menu
  • 最全面的Python重点知识汇总,建议收藏!

    这是一份来自于 SegmentFault 上的开发者 二十一 总结的 Python 重点 由于总结了太多的东西 所以篇幅有点长 这也是作者 缝缝补补 总结了好久的东西 Py2 VS Py3 print成为了函数 python2是关键字 不再
  • SQLAlchemy使用详细功能SqlHelper封装

    环境与版本 python 3 10 SQLAlchemy 2 0 9 网上好多sql语句查询相关的代码执行异常 不确定是否与版本有有关 说明 封装了比较实用的 复合唯一索引表的插入或更新 多条件查询 叠加条件查询 以及返回pandas Da
  • Python中类成员变量与实例成员变量相互影响的原因超详细解释

    今天在看python学习手册时看到了两句话 一 第26章中 类对象提供默认行为 二 第26章中 实例对象是具体的元素 书中给的例子是这样的 但上网查了一下好像第二句话不是非常准确 如下面的文章 原文 https www jb51 net a
  • Python之sys模块详解

    sys模块 sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分 常见用法 sys argv 命令行参数List 第一个元素是程序本身路径 sys modules keys 返回所有已经导入的模块列表 sys exc
  • 2023年IT行业就业前景分析,准职场人必看!

    随着疫情的放开 2022已接近尾声 新的一年即将来临 作为打工人最关心的肯定是2023年的就业市场以及行业未来发展前景 如何最直观地看待这个行业是否还有前景 最好的方式就是看市场需求 作为准职场人的你 速速关注起来 根据智联招聘10月发布的
  • leetcode 27-移除元素 python

    给定一个数组 nums 和一个值 val 你需要原地移除所有数值等于 val 的元素 返回移除后数组的新长度 不要使用额外的数组空间 你必须在原地修改输入数组并在使用 O 1 额外空间的条件下完成 元素的顺序可以改变 你不需要考虑数组中超出
  • 【python基础】:分类统计各字符的个数

    功能实现 利用python实现统计一个字符串中数字 字母及其他字符的个数和各个字符的总数 方法一 利用 isdigit isalpha 函数判断字符是否是数字或者字母 代码如下 s input 请输入一串字符 num char space
  • 学完Python,怎么变现?小哥哥10000元外快了解一下

    自学 Python 之后如果不去公司上班 自己一个人可以通过此技能挣什么钱 逆天的Python 只要你掌握了相关技术 就可以靠它赚钱 具体怎么赚 我们来看看一位小哥哥的回答 以我差不多四年的 Python 使用经验来看 大概可以按以下这些路
  • python的赋值操作浅析

    目录 前言 一 不可变类型的赋值 1 Numbers的赋值 2 String类型的赋值 3 Tupes类型赋值 4 函数传参赋值 二 可变类型的赋值 1 List赋值 2 函数传参 总结 前言 python中Numbers 数
  • 经典的python基础练习

    假设市面上有4种面值 硬币 20元 10元 5元 1元 输入一个钱数 能够使用最少的硬币凑成这个钱数 def mon money ss 0 0 0 0 coinKinds 20 10 5 1 for i in range len coinK
  • Python入门:什么是爬虫,怎么玩爬虫?

    python爬虫入门 什么是爬虫 怎么玩爬虫 看到这两只爬虫没有 两只爬虫 两只爬虫 跑得快 跑得快 一只没有 不好意思 跑题了 别误会 今天不是要教你怎么玩上面这两只沙雕玩意 今天 我们正式从0到1 轻松学会 python 爬虫 接下来
  • Pandas玩转数据透视表,用它就够了~

    大家好 我是丁小杰 对于数据透视表 相信对于 Excel 比较熟悉的小伙伴都知道如何使用它 并了解它的强大之处 而在pandas中要实现数据透视就要用到pivot table了 导入示例数据 首先导入演示的数据集 import pandas
  • json和pickle的dump,dumps,load,dumps方法的使用

    序列化 Serialization 将对象的状态信息转换为便于存储或传输的形式的过程称之为序列化 该过程的逆向则称之为反序列化 如 1 数据和文本的转换 2 Python的数据类型和二进制数据类型的转化 3 Python的数据类型和json
  • python解释器多版本安装

    文章目录 1 python解释器的安装 2 配置环境变量 3 在cmd窗口使用python多版本 1 python解释器的安装 要想让计算机能够识别并运行高级语言 要对应类型的翻译官 python这种编程语言的翻译官就是python解释器
  • Python中的None

    一 None None是python中的一个特殊的常量 表示一个空的对象 数据为空并不代表是空对象 例如空列表 等都不是None None有自己的数据类型NontType 你可以将None赋值给任意对象 但是不能创建一个NoneType对象
  • Python编程:从入门到实践(基础知识)

    第一章 起步 计算机执行源程序的两种方式 编译 一次性执行源代码 生成目标代码 解释 随时需要执行源代码 源代码 采用某种编程语言编写的计算机程序 目标代码 计算机可执行 101010 编程语言分为两类 静态语言 使用编译执行的编程语言 C
  • mayavi TypeError: unsupported operand type(s) for -: ‘str‘ and ‘str‘

    目录 mayavi安装报错 模拟异常 TypeError unsupported operand type s for str and str 模拟异常 TypeError unsupported operand type s for st

随机推荐

  • 2022陕西省网络搭建及应用技能大赛windows服务器搭建部分答案视频

    2022陕西省网络搭建及应用技能大赛windows服务器搭建部分答案视频资源 CSDN文库 https download csdn net download weixin 41687096 87684084
  • Gateway服务网关入门

    Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目 该项目是基于 Spring 5 0 Spring Boot 2 0 和 Project Reactor 等响应式编程和事件流技术
  • Android之 内存泄漏问题检测和解决

    一 背景 1 1 什么是内存泄漏 内存泄漏指程序在申请内存后 无法释放已申请的内存空间 导致系统无法及时回收内存并且分配给其他进程使用 1 2 内存管理 1 3 垃圾回收 上面可以看出GC回收的主要对象是java堆 也就是new出来的对象
  • Zipkin链路追踪

    Zipkin链路追踪技术分享 什么是Zipkin Zipkin 是 Twitter 的一个开源项目 它基于 Google Dapper 实现 它致力于收集服务的定时数据 以 解决微服务架构中的延迟问题 包括数据的收集 存储 查找和展现 我们
  • Python实现移动平均数

    首先 什么是移动平均数呢 来自百度百科 若依次得到测定值 时 按顺序取一定个数所做的全部算术平均值 例如 等是移动平均值 详细可以点击此处链接 Python中是如何实现呢
  • 电子科技大学计算机系统结构复习笔记(三):流水线技术

    目录 前言 重点一览 流水线定义 基本概念 流水线分类 流水线特点 流水线时空图 流水线性能分析 流水线特点 经典5段流水线RISC处理器 流水线的三种冒险 冒险分类 停顿流水线 结构冒险 数据冒险 控制冒险 流水线处理机的指令系统 流水线
  • kitti数据集解析以及在mmdection3d中的pkl文件参数解析

    kiiti数据集介绍 kitti数据集存在4个相机 其中0和1为灰度相机 2和3为彩色相机 各设备之间的安装示意图如下所示 如图所示 相机坐标系 x轴向右 y轴向下 z轴向前 雷达坐标系 x轴向前 y轴向左 z轴向上 GPS IMU坐标系
  • STM32项目设计:基于stm32f4的智能门锁(附项目视频全套教程、源码资料)

    文章目录 智能门锁 一 项目背景 二 项目功能要求 三 元件准备 四 项目设计 一 原理图设计 二 硬件设计 三 程序设计 五 上机调试 六 知识扫盲 七 项目图片展示 智能门锁 资料链接 智能门锁 rar 2022年1月1日前 单片机设计
  • 机器学习项目入门篇:一个完整的机器学习项目

    本部分 我们会作为被一家地产公司雇佣的数据科学家 完整地学习一个项目 下面是主要步骤 项目概述 获取数据 发现并可视化数据 发现规律 为机器学习算法准备数据 选择模型 进行训练 微调模型 给出解决方案 部署 监控 维护系统 一 项目概述 任
  • 05-Redis

    1 Redis为什么快 1 纯内存操作 2 单线程可以省去多线程时CPU上下文会切换的时间 3 渐进式ReHash 缓存时间戳 数组需要扩容的时候 他会维护两张hash表 比如第一张的数组长度为6 另一张的数组长度为12 在set和get的
  • Android Stuido卡顿解决方法

    修改Android studio的安装目录下bin studio vmoptions和studio64 vmoptions 两个文件的以下属性就可以在内存配置比较大的电脑上有效减少Android Stuido卡顿现象 多开也不怎么卡了 Xm
  • Gate仿真错误Illegal application state /gate/source/addSources ***

    我采用vGate8 2进行仿真 仿真程序是gate GateContrib CT vrt 出现如下错误 Illegal application state source addSources xraygun gt google搜索发现 是I
  • addr2line 定位bug

    addr2line e 文件地址 exe so a 地址 0x
  • Qt 的TCP网络通信

    Qt网络通信 Socket 通信 Qt 中提供的所有的 Socket 类都是非阻塞的 Qt 中常用的用于Socket 通信的套接字类 QTCPServer 用于TCP IP 通信 作为服务器端套接字使用 QTCPSocket 用于TCP I
  • 第四章. Pandas进阶—数据格式化

    第四章 Pandas进阶 4 2 数据格式化 1 设置小数位数 round函数 DataFrame round decimals 0 args kwargs 参数说明 decimals 用于设置保留的小数位数 args kwargs 附加关
  • Unity灯光效果及设置详解

    时间 2017 03 03 发布 Unity3D培训 来源 Unity3D教程 分享到 Unity已经成为游戏程序员中越来越受欢迎的游戏引擎 这是因为Unity直接支持多种平台 如移动 桌面和控制台环境 此外 对于低收入开发者或工作室来说
  • 4399游戏测试实习生面试

    2014年5月13日 经常在大街网看到4399的测试招聘 我都没放在心上 虽然肥佬一直说4399福利很棒 送车 但我不喜欢游戏 有一天爱游邀请我投它的游戏测试实习生岗位 我就点击几下申请了 心里想着反正不是4399 或许游戏性质不会太强 忘
  • 数学建模——模拟退火算法(Simulated Annealing,SA)

    模拟退火算法 一 模拟退火算法概述 二 算法步骤 三 算法特点 四 模拟退火算法理解 图解 五 Metropolis准则 六 模拟退火算法的应用 七 模拟退火算法Matlab代码 工具箱求解非线性函数 注 本博客仅做本人笔记参考使用 推荐博
  • 微信小程序的点击、双击、长按事件

    一 点击事件 点击事件是最常用的事件 轻点即可触发事件 如果想要添加参数即可通过 data 加事件名 的方式添加参数 通过 event参数的target dataset 加事件名 获取 我们来看看样例 wxml代码
  • 序列化pickle&json模块

    序列化pickle json模块 序列化 序列化是指把内存里的数据类型转变成字符串 以使其能存储到硬盘或通过网络传输到远程 因为硬盘或网络传输时只能接受bytes 用于序列化的两个模块 json 用于字符串 和 python数据类型间进行转