python序列化模块

Posted HerlesChung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python序列化模块相关的知识,希望对你有一定的参考价值。

 序列化就是将原本的字典、列表等内容转换成一个字符串。

 

 常用的两个模块是json与pickle.

Json模块提供了四个功能:dumps、dump、loads、load.

 

dumps和loads

dumps和loads用于序列化字符串,而剩下两个则用于处理到文件句柄。

>>> json.dumps({\'aa\':2})
\'{"aa": 2}\'


>>> json.loads(\'{"aa": 2}\')
{\'aa\': 2}

 

dump和load

f = open(\'json_file\',\'w\')
dic = {\'k1\':\'v1\',\'k2\':\'v2\',\'k3\':\'v3\'}
json.dump(dic,f)  #dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件
f.close()

f = open(\'json_file\')
dic2 = json.load(f)  #load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回
f.close()
print(type(dic2),dic2)

 

 

  • json,用于字符串 和 python数据类型间进行转
  • 而pickle,用于python特有的类型 和 python的数据类型间进行转换

pickel更为强大,pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load  (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化)。

但json是一种所有的语言都可以识别的数据结构。如果我们将一个字典或者序列化成了一个json存在文件里,那么java代码或者js代码也可以拿来用。

但是如果我们用pickle进行序列化,其他语言就不能读懂这是什么了~

 

以上是关于python序列化模块的主要内容,如果未能解决你的问题,请参考以下文章

python之路 模块,序列化,迭代器,生成器

Python - 模块

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

python之模块和包

python中的模块

Python 常用模块学习