序列化与反序列化之json、pickle、msgpack的简单运用

序列化与反序列化之json、pickle、msgpack的简单运用

json

json序列化 dumps

import json
d = {'name':'Tom', 'age':20, 'interest':('music', 'move'), 'class':['python']}
j = json.dumps(d)
print(j, type(j))

{"name": "Tom", "age": 20, "interest": ["music", "move"], "class": ["python"]} <class 'str'>

json反序列化 loads

d1 = json.loads(j)
print(d1)

{'name': 'Tom', 'age': 20, 'interest': ['music', 'move'], 'class': ['python']}

pickle

pickle序列化 dumps

import pickle
d = {'name':'Tom', 'age':20, 'interest':('music', 'move'), 'class':['python']}
p = pickle.dumps(d)
print(p, type(p), len(p))

b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x03\x00\x00\x00Tomq\x02X\x03\x00\x00\x00ageq\x03K\x14X\x08\x00\x00\x00interestq\x04X\x05\x00\x00\x00musicq\x05X\x04\x00\x00\x00moveq\x06\x86q\x07X\x05\x00\x00\x00classq\x08]q\tX\x06\x00\x00\x00pythonq\nau.' <class 'bytes'> 111

pickle反序列化 loads

d2 = pickle.loads(p)
print(d2, type(d2), len(d2))

{'name': 'Tom', 'age': 20, 'interest': ('music', 'move'), 'class': ['python']} <class 'dict'> 4

msgpack

安装

在PyCharm终端中敲出以下命令

pip install msgpack

输入后会有进度条显示,成功后会有提示,然后就可以导入使用了

msgpack序列化 dumps

import msgpack
d = {'name':'Tom', 'age':20, 'interest':('music', 'move'), 'class':['python']}
data = msgpack.dumps(d)
print(data, type(data), len(data))

b'\x84\xa4name\xa3Tom\xa3age\x14\xa8interest\x92\xa5music\xa4move\xa5class\x91\xa6python' <class 'bytes'> 50

msgpack反序列化 unpackb&loads

d1 = msgpack.unpackb(data)
print(d1, type(d1), len(d1))

{b'name': b'Tom', b'age': 20, b'interest': [b'music', b'move'], b'class': [b'python']} <class 'dict'> 4
d2 = msgpack.loads(data)
print(d2, type(d2), len(d2))

{b'name': b'Tom', b'age': 20, b'interest': [b'music', b'move'], b'class': [b'python']} <class 'dict'> 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值