json的数据类型
官网:https://www.json.org/

值:
  双引号内的字符串,数值,true和false,null,对象,数组;
字符串:
  双引号内的任意字符的组合,可以有专一字符;
数值:
  有正负、整数、浮点数;
对象:
  无序的键值对的集合;
  格式:{key1:value1,key2:value2,...}
  key必须是一个字符串,需要双引号包围起来;
  value可以是任意合法的值;
数组:
  有序的值的集合
  格式:[val1,val2,...]

json模块
  python支持少量内建数据类型到json类型的转换;

常用方法

示例:

import json
d = dict(zip('abcde',[None,True,False,[1,'abc'],{'a':1,'b':2}]))
s = json.dumps(d)
print(s,type(s)) s1 = """{"b":true,"c":false,"d":[1,"abc"],"e":{"b":2,"a":1},"a":null}"""
d1 = json.loads(s1)
print(d1,type(d1))
# 执行结果
PS D:\Doc> & D:/Python/Python38/python.exe d:/Doc/test.py
{"a": null, "b": true, "c": false, "d": [1, "abc"], "e": {"a": 1, "b": 2}} <class 'str'>
{'b': True, 'c': False, 'd': [1, 'abc'], 'e': {'b': 2, 'a': 1}, 'a': None} <class 'dict'>

  对于json的序列化,是str类型的;一般json编码的数据很少落地,数据都是通过网络传输,传输的时候要考虑压缩它,本质上来说它就是文本,就是字符串;

MessagePack

官网:https://msgpack.org

  messagepack是一个基于二进制搞笑的对象序列化类库,可用于跨语言通信;它可以向json那样,在许多语言之间交换结构对象;但它比json更快也更轻巧;支持python、ruby、java等众多语言;
  messagepack简单易用,高效压缩,所以用它序列化也是一种很好的选择;

安装

pip install msgpack-python

常用方法

packb   序列化对象;提供了dumps来兼容pickle和json;
unpackb 反序列化对象;提供了loads来兼容;
pack 序列化对象保存到文件对象;提供了dump来兼容;
unpack 反序列化对象保存到文件对象;提供load来兼容;

示例

import json
import msgpack d = dict(zip('abcde',[None,True,False,[1,'abc'],{'a':1,'b':2}]))
s = json.dumps(d)
print(s.encode())
print(len(s),type(s))
print("##############")
b1 = msgpack.dumps(d)
print(b1)
print(len(b1),type(b1))
# 执行结果
PS D:\Doc> & D:/Python/Python38/python.exe d:/Doc/test.py
b'{"a": null, "b": true, "c": false, "d": [1, "abc"], "e": {"a": 1, "b": 2}}'
74 <class 'str'>
##############
b'\x85\xa1a\xc0\xa1b\xc3\xa1c\xc2\xa1d\x92\x01\xa3abc\xa1e\x82\xa1a\x01\xa1b\x02'
27 <class 'bytes'> #从上面结果可看出,用msgpack序列化后比json序列化后节省好多字节;

第十九天python3 json和messagepack的更多相关文章

  1. 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档

    孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...

  2. 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数

    孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...

  3. javaSE第十九天

    第十九天    227 1:异常(理解)    227 (1) 定义    227 a)异常的引入    227 (2)异常的体系    228 (3)异常的处理:    229 A:JVM的默认处理 ...

  4. 计算机程序的思维逻辑 (63) - 实用序列化: JSON/XML/MessagePack

    上节,我们介绍了Java中的标准序列化机制,我们提到,它有一些重要的限制,最重要的是不能跨语言,实践中经常使用一些替代方案,比如XML/JSON/MessagePack. Java SDK中对这些格式 ...

  5. IT第十九天 - 继承、接口、多态、面向对象的编程思想

    IT第十九天 上午 继承 1.一般情况下,子类在继承父类时,会调用父类中的无参构造方法,即默认的构造方法:如果在父类中只写了有参的构造方法,这时如果在子类中继承时,就会出现报错,原因是子类继承父类时无 ...

  6. OCM_第十九天课程:Section9 —》Data Guard _ DATA GUARD 原理/DATA GUARD 应用/DATA GUARD 搭建

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  7. Java编程的逻辑 (63) - 实用序列化: JSON/XML/MessagePack

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  8. 孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2

    孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2 (完整学习过程屏幕记录视频地址在文末) 今天继续学习beautifulsoup对象的属性与方法等内容. 一.今天进一步 ...

  9. 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务

    孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...

随机推荐

  1. 测试覆盖率 之 Cobertura的使用

    什么是代码覆盖率? 代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行. 为什么要测量代码覆盖率? 众所周知,测试可以提高软件版本的质量和可预 ...

  2. 百度3D离线地图开发,3D离线地图开发,百度地图离线开发

    3D离线地图介绍(3D离线采用矢量数据作为地图基础,可保持地图数据最新) 一.开发中引用3D离线地图(可独立部署通过内外IP+端口进行访问,也可拷贝js库文件到项目中通过绝对路径访问) 1).离线AP ...

  3. Oracle19c单实例数据库配置OGG单用户数据同步测试

    目录 19c单实例配置GoldenGate 并进行用户数据同步测试 一.数据库操作 1.开启数据库附加日志 2.开启数据库归档模式 3.开启goldengate同步 4.创建goldengate管理用 ...

  4. 组织:SAE

    美国汽车工程师学会(SocietyofAutomotiveEngineers),美国及世界汽车工业(包括航空和海洋)有重要影响的学术团体.简称SAE.已有90余年的历史.该学会实行会员制,约有会员69 ...

  5. .NET MAUI 正式版GA发布

    .NET MAUI – 一个代码库,多个平台 欢迎使用 .NET 多平台应用 UI.此版本标志着我们统一 .NET 平台的多年旅程中的新里程碑.现在,您和超过 500 万其他 .NET 开发人员拥有了 ...

  6. 用python解决打标签时将xml文件的标签名打错

    用python解决打标签时将xml文件的标签名打错 问题描述:再进行达标签时将magnetic_tile的标签名错误的打成了magnetic_title,又不想一张一张的修改 出现问题的xml文件 & ...

  7. PyTorch - torch.eq、torch.ne、torch.gt、torch.lt、torch.ge、torch.le

    PyTorch - torch.eq.torch.ne.torch.gt.torch.lt.torch.ge.torch.le 参考:https://flyfish.blog.csdn.net/art ...

  8. C#/VB.NET 在Word转PDF时生成目录书签

    当我们在转换Word文档到PDF格式时,想保留Word文档的标题作为PDF书签,那么应该如何操作呢?那么本文将以C#及VB.NET代码为例,介绍如何在Word转PDF时生成目录书签.下面是具体方法和步 ...

  9. C语言- 基础数据结构和算法 - 队列的顺序存储

    听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友 ...

  10. CYaRon!语

    P3695 CYaRon!语 开始之前 上次水了些小模拟之后感觉不能再颓废了,于是就来大模拟. 然后这个题花了我一个多星期 还是最差解 不过,为了纪念我的第 20 道紫题,纪念我这一周的努力,我还是想 ...