python msgpack_Python中msgpack库的使用

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

安装

直接pip即可

pip install msgpack

1

使用

import msgpack

var = {'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)

1

2

3

4

5

6

7

8

9

10

11

12

输出结果

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

1

存储类型

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

print(type(var))

1

输出结果

1

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

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

与json效率对比

import json

import msgpack

stu = {

'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)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

输出结果

23

41

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

1

2

3

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

参考资料

【python】msgpack使用

python序列化第2篇—msgpack

python中requests库使用方法详解

目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

Python中第三方库Requests库的高级用法详解

Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

Python中cv2库和matplotlib库色彩空间排布不一致

今天在python中读如图片时发现以下问题: 1.在from matplotlib import pyplot as plt之后,再import cv2 cv2.imshow()不能正常使用,还不知道 ...

Python 中拼音库 PyPinyin 的用法【华为云技术分享】

[摘要] 最近碰到了一个问题,项目中很多文件都是接手过来的中文命名的一些素材,结果在部署的时候文件名全都乱码了,导致项目无法正常运行. 后来请教了一位大佬怎么解决文件名乱码的问题,他说这个需要正面解决 ...

python中pyperclip库的功能

python3中pyperclip库的功能 作用就是复制.粘贴 例子 import pyperclip pyperclip.copy('Hello world!') pyperclip.paste() ...

Python中datetime库的用法

datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.datetime ...

Python中的库使用之一 PIL

先上代码:本文主要工给自己参考,在需要的时候直接搜索查找就行了,不想看没有实际运行例子的文档,当参考完这部分还哦未能解决问题在参考PIL的相关文档! Skip to content This repo ...

Python中第三方库的安装

网上的帖子挺多的,教你如何安装,安装第三方工具库的方法总共分为三类:Dos系统下pip命令:安装包下载安装:IDE集成环境下安装(Pycharm,Spyder……) http://www.jiansh ...

Python中PyQuery库的使用总结

介绍 pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,官方文档地址是:http://packages.python.org/pyquery/ pyquery 可让你用 ...

随机推荐

lnmp 预设iptables设置

「LNMP」iptables初始配置   首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...

使用Uploadify(UploadiFive)多文件上传控件遇到的坑

最近项目中需要实现多文件上传功能,于是结合需求最终选择了Uploadify这一款控件来实现.相比其他控件,Uploadify具有简洁的界面,功能API基本可以解决大多数需求,又是基于jquery的,配 ...

css公共样式

/* ==================================================================== @ set browser style ======== ...

安装Intel CPU的Android模拟器

1. 用Android SDK Manager安装Extras/Intel x86 Emulator Accelarator(HAXM) 2. 用Android SDK Manager安装Androi ...

hdfs文件系统架构详解

hdfs文件系统架构详解 官方hdfs分布式介绍 NameNode *Namenode负责文件系统的namespace以及客户端文件访问 *NameNode负责文件元数据操作,DataNode负责文件 ...

Android + HTML5 混合开发

摘要: 对于 Android + HTML5 混合开发以下的观点仅仅是我的个人观点,如果有什么不对的地方请指正 简介: 混合开发的 App(Android + HTML5)就是在一个 App 中内嵌一 ...

关于Box Anemometer的安装配置遇到的几个坑

Box Anemometer是一个非常不错的MySQL慢查询可视化工具平台,具体就不多详述了,官网是https://github.com/box/Anemometer 最近动自己动手搭了一个,具体搭建 ...

Northwind测试学习用数据库

下载地址: https://northwinddatabase.codeplex.com/

修改计算机名或IP后Oracle10g无法启动服务的解决办法

修改计算机名或IP后Oracle10g无法启动服务的解决办法 遇到的问题,问题产生原因不详.症状为,windows服务中有一项oracle服务启动不了,报出如下错误. Windows 不能在 本地计算 ...

centos7安装lua语言环境

Linux 上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可. 官网地址:http://www.lua.org/download.html 我这里安装的是:lua-5.3.0.tar ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值