Python标准库json模块和pickle模块使用详解
将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件。
序列化要求:
1.只能有int,str,bool,list,dict,tuple的类型支持序列化。
2.json序列化是以字符串形式出现。那么:lis="[11,22,33]"这样的也能称为序列化。
3.必须将数据类型包裹在list或dict内进行转换。
4.json内部的str格式,必须以双引号来进行包裹。
5.bool值转换为小写的首字母
json.dumps
将py转换为json(序列化)格式的字符串
lis=[11,22,33] json_lis=json.dumps(lis) print(type(json_lis)) #
如果序列化时,存在中文,那么默认将会以unnicode类型转换。可以使用:
v=[1,2,3,4,'哈哈'] data=json.dumps(v) print(data) #[1,2,3,4,"\u54c8\u54c8"] ################################# v=[1,2,3,4,'哈哈'] data=json.dumps(v,ensure_ascii=False) print(data) #[1,2,3,4,"哈哈"]
将序列化格式字符串,反序列化为python文件格式。
lis=[11,22,33] json_lis=json.dumps(lis) lis_1=json.loads(json_lis) print(type(lis_1))
将序列化好的内容直接存放到一个文件内。load为直接读取文件内序列化的内容进行反序列化。
importjson v=[1,2,3,4,'哈哈'] withopen('test.txt',mode='w',encoding='utf-8')asf: json.dump(v,f,ensure_ascii=False)
pickle模块:
pickle的使用方式和json完全一样,需要注意的是:
1.pickle只支持python类型的转换,而json支持其他代码语言的转换。
2.pickle可以将python中所有数据类型进行转换,而json不能转换元组(转换成列表)和集合,而且必须套到列表或字典中。
3.json序列化后的类型为字符串类型,而pickle所序列化的类型为bytes类型。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。