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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值