我在JSON中见过“反序列化”和“序列化”这两个术语。它们是什么意思?
发布于 2010-07-23 09:07:14
JSON是一种将对象编码为字符串的格式。 意味着将对象转换为string,而反序列化是它的逆操作(convert string -> object)。
在传输数据或将数据存储在文件中时,要求数据为字节字符串,但复杂对象很少采用这种格式。序列化可以将这些复杂对象转换为字节字符串以供此类使用。在字节串被传输之后,接收器将不得不从字节串恢复原始对象。这就是所谓的反序列化。
比如说,你有一个对象:
{foo: [1, 4, 7, 10], bar: "baz"}
序列化到JSON会将其转换为字符串:
'{"foo":[1,4,7,10],"bar":"baz"}'
它可以存储或通过电缆发送到任何地方。然后,接收方可以反序列化该字符串,以获取原始对象。{foo: [1, 4, 7, 10], bar: "baz"}
。
发布于 2019-10-30 19:01:55
使用Python序列化和反序列化的说明
在python中,pickle模块用于序列化。因此,这个序列化过程在Python语言中称为酸洗。Python标准库中提供了此模块。
使用pickle进行序列化
import pickle
#the object to serialize
example_dic={1:"6",2:"2",3:"f"}
#where the bytes after serializing end up at, wb stands for write byte
pickle_out=open("dict.pickle","wb")
#Time to dump
pickle.dump(example_dic,pickle_out)
#whatever you open, you must close
pickle_out.close()
PICKLE文件(可通过记事本等文本编辑器打开)包含以下内容(序列化数据):
欧元}q (KX 6qKX 2qKX fqu.
使用pickle进行反序列化
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
输出:
{1:'6',2:'2',3:'f'}
https://stackoverflow.com/questions/3316762
复制