import pickle
data = {'name':'Jack','gender':'man'}
p_str = pickle.dumps(data)
print p_str
(dp0
S'gender'
p1
S'man'
p2
sS'name'
p3
S'Jack'
p4
s.
dumps和dump都是进行序列化,而loads和load则是反序列化。
dump和dumps的区别:
dumps将所传入的变量的值序列化为一个str,然后,就可以将这个str写入磁盘或者进行传输。
而dump则更加一步到位,在dump中可以传入两个参数,一个为需要序列化的变量,另一个为需要写入的文件。
也就是dump操作的是和文件相关的。
with open("myfile",'w+') as myfile:
pickle.dump({"name":"Jack","gender":"man"},myfile)
with open("myfile",'r+') as myfile:
txt = pickle.load(myfile)
print txt
load和loads的区别:
loads当我们要把对象从磁盘读到内存时,可以先把内容读到一个str,然后用loads方法反序列化出对象,也可以直接用load方法直接反序列化一个文件。
pickle可以存列表,类,字典等等。。。(基本上python上的所有对象都可以)
而json只能序列化字典,列表,集合这样的常规的对象。