今天写一个模块,需要将类的实例进行序列化,方便网络传输或是本地保存。
以前一直都是用json或者pickle,
json写起来实在不方便,需要自己写返回实例的函数,以后类的参数一多,写起来就费劲了,要改来改去;
pickle很舒服很方便,就是自肃太惨,其他语言解读不能。
今天突然发现了个模块叫jsonpickle
pip install jsonpickle
然后查了一下官方文档,发现用起来挺方便的。
from jsonpickle import encode,decode
class example(object):
def __init__(self,*args):
self.args=args
def __str__(self):
return str(self.args)
a=example(3,12,4,(23,3,1),"sd")
b=encode(a)
print(b)
c=decode(b)
print(c)
print(a==c)
输出信息
{"args": {"py/tuple": [3, 12, 4, {"py/tuple": [23, 3, 1]}, "sd"]}, "py/object": "__main__.example"}
(3, 12, 4, (23, 3, 1), 'sd')
False
注意的是a和c的内存地址不同了
不过哦,其他语言读取jsonpickle传出的json数据也是要自己写解读函数嗐!