Python爬虫:浅谈序列化操作

程序运行时,所有的变量都是在内存中的。程序一结束或意外中断,程序中的内存变量都会被操作系统进行回收。

把内存中的变量变成可存储或可传输的过程,就是序列化。将内存中的变量序列化之后,可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上,实现程序状态的保存和共享。反过来,把变量内容从序列化的对象重新读取到内存,称为反序列化。

在Python中提供了两个模块:cPickle和pickle来实现序列化。前者是由C语言编写的,效率比后者高很多,但是两个模块的功能是一样的。在编写程序时,一般先导入 cPickle 模块,如果此模块不存在,再导入 pickle 模块:

try:
    import cPickle as pickle
except ImportError:
    import pickle

序列化

pickle实现序列化主要使用的是 dumps 方法或 dump 方法:

  • dumps方法可以将任意对象序列化成一个str,然后可以将这个str写入文件进行保存。
d = pickle.dumps(Object)
  • dump方法可以将序列化后的对象直接写入文件中:
file = open("filepath","w")
d = pickle.dump(Object,file)

反序列化

pickle实现反序列化使用的是loads方法或load方法。把序列化后的文件从磁盘上读取为一个str,然后使用loads方法将这个str反序列化为对象,或者直接使用load方法将文件反序列化为对象:

file = open("filepath","r")
d = pickle.load(file)
file.close()

序列化的意义

如果要在不同的编程语言之间传递对象,把对象序列化为标准格式是关键,例如JSON,它既可以被所有的编程语言读取解析,也可以方便地存储到磁盘或者通过网络传输。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值