今天写一个模块,需要将类的实例进行序列化,方便网络传输或是本地保存。
以前一直都是用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数据也是要自己写解读函数嗐!