https://docs.python.org/3/library/pickle.html
pickle协议和JSON(JavaScript对象表示法)之间存在根本差异 :
JSON是一种文本序列化格式(虽然大多数时间然后将其编码为,但它输出unicode文本utf-8),而pickle是一种二进制序列化格式;
JSON是人类可读的,而pickle则不是;
JSON是可互操作的,并且在Python生态系统之外被广泛使用,而pickle是特定于Python的;
默认情况下,JSON只能表示Python内置类型的子集,而不能表示自定义类。pickle可以表示大量的Python类型(通过巧妙地使用Python的自省功能,其中的许多会自动实现;可以通过实现特定的对象API解决复杂的情况);
与pickle不同,反序列化不受信任的JSON本身并不创建任意代码执行漏洞。
总结:
1 json好看,但内部类型少。可跨平台。
2 pickle不好看,但是叼,啥都能存,还能复原。
3 建议:不整活就pickle就行了,好用,兼容好。
4 怎么用:
存成一个文件:
pythonimport pickle
with open('temp_debug_t_all.txt','wb') as f:
pickle.dump(t_all, f)
读取出来
pythonimport pickle
with open('temp_debug_t_all.txt', 'rb') as f:
t_all = pickle.load(f)
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!