msgpack用起来像json,但是却比json快,并且序列化以后的数据长度更小,言外之意,使用msgpack不仅序列化和反序列化的速度快,数据传输量也比json格式小,msgpack同样支持多种语言。

安装

直接pip即可

pip install msgpack

使用

import msgpackvar = {'a': 'this','b': 'is','c': 'a test'
}with open('data.txt', 'wb') as f1:msgpack.dump(var, f1) # 存储数据
with open('data.txt', 'rb') as f2:var = msgpack.load(f2, use_list=False, encoding='utf-8') # 读取数据
print(var)

输出结果

{'a': 'this', 'b': 'is', 'c': 'a test'}

存储类型

使用type函数查看上述代码中提取出的var的类型

print(type(var))

输出结果

<class 'dict'>

可知msgpack提取出的数据类型为dict,即其以字典形式储存

关于查看变量数据类型的方法可以参考Python中查看变量数据类型

与json效率对比

import json
import msgpackstu = {'name': 'lili','age': 18,'score': 100
}# 序列化
msg_str = msgpack.packb(stu)
print(len(msg_str))
json_str = json.dumps(stu)
print(len(json_str))# 反序列化
stu_dict = msgpack.unpackb(msg_str, use_list=False, encoding='utf-8')
print(stu_dict)

输出结果

23
41
{'name': 'lili', 'age': 18, 'score': 100}

程序的运行结果表明,msgpack序列化后的字符串长度为23,而json模块序列化后的字符串长度为41,接近节省了一半的空间。

参考资料

【python】msgpack使用
python序列化第2篇—msgpack

Python中msgpack库的使用相关推荐

  1. python msgpack_Python中msgpack库的使用

    msgpack用起来像json,但是却比json快,并且序列化以后的数据长度更小,言外之意,使用msgpack不仅序列化和反序列化的速度快,数据传输量也比json格式小,msgpack同样支持多种语言 ...

  2. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  3. python opencv创建图像_使用Python中OpenCV库创建一幅图片的RGB通道图片

    我们知道,在使用PhotoShop进行图片的抠取.创建和存储选区.存储图像的色彩资料等复杂操作时,经常会用到一个功能,那就是"RGB"通道,它能从三原色角度对一幅图片进行精准处理. ...

  4. python中requests库的用途-数据爬虫(三):python中requests库使用方法详解

    有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...

  5. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

  6. python cnn_使用python中pytorch库实现cnn对mnist的识别

    使用python中pytorch库实现cnn对mnist的识别 1 环境:Anaconda3 64bit https://www.anaconda.com/download/ 2 环境:pycharm ...

  7. python下载库报错_下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决...

    下载python中Crypto库报错:ModuleNotFoundError: No module named 'Crypto'的解决 前言 最近在网上找了很多下载Crypto的方法,感觉作用都不算很 ...

  8. python中time库是什么意思_python中time库的time.time()函数的作用是什么

    python中time库的time.time()函数的作用是什么? 作用:Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数). time()方法语法:time. ...

  9. Python中os库的使用

    文章目录 Python中os库的使用 1. path子库 1.1 获取绝对路径 1.2 归一化path的表示形式 1.3 得到文件的相对路径 1.4 获取目录名 1.5 获取文件名 1.6 路径组合 ...

最新文章

  1. Python学习笔记2 基本数据类型
  2. matlab simulink实例,simulink实例(有好多实例)..ppt
  3. C 关于使用异或运算操作概述
  4. git 拉去代码要求密码 解决方法:生成gitLab公钥
  5. django安装初步使用命令整理
  6. sql 如何设置行级锁_如何使用SQL Server 2016行级安全性过滤和阻止数据访问
  7. 英特尔推出业界领先的AI与数据分析平台,全新处理器、内存、存储、FPGA解决方案集体亮相
  8. Ignoring Provides line with DepCompareOp for package gdb-minimal
  9. Java 类与对象的初始化
  10. LINUX编译mate-desktop/pluma-1.26.0文本编辑器
  11. 电磁学matlab仿真实验报告,利用MATLAB语言处理电磁学实验.doc
  12. MySQL重做日志文件放在磁盘_重做日志文件
  13. Node.js基础2 fs方法和path方法的使用
  14. iOS逆向:微信逆向及动态库开发过程中的坑
  15. python解析can报文,Python实现Can接收发送 DBC分析报文 周立功ZLG 绘制曲线 支持离线回放.rar...
  16. 计算机网络基础——应用层(上云必看)
  17. 联想V450 如何支持VT技术
  18. 五、c++学习(加餐1:汇编基础学习)
  19. 34. 注入篇——Cookie注入
  20. 备战 2023 秋招,应届生应做好哪些准备,22道Java架构师面试题及答案分享

热门文章

  1. 每一次分手都是心灵的修复
  2. PHP使用predis/predis包应用实例
  3. [文献阅读]BeatGAN: Anomalous Rhythm Detection using Adversarially Generated Time Series
  4. 在直播APP系统源码中基于腾讯视频云SDK制作简易版直播回放播放器
  5. 科沃斯旺宝 世界智能制造大会万众瞩目的机器人
  6. 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )
  7. 内网 子网 局域网 外网
  8. MBA案例分析(管理之道在于“借力”)
  9. iOS shareSDK分享 只分享到微信好友和微信朋友圈
  10. 2021-AAAI-KCGN-面向社会推荐的知识感知耦合图神经网络