Python序列化模块pickle和json使用和区别

2018-03-29 17:16:16 831浏览

Python序列化模块pickle和json使用和区别,这是用于序列化的两个模块:

json:用于字符串和python数据类型间进行转换

pickle:用于python特有的类型和python的数据类型间进行转换

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

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



pickle用法

dumps可以将数据类型转换成序列化(只有python才认识)的字符串

  >>>importpickle
  >>>data={'name':'python','site':'pythontab.com'}
  >>>pstr=pickle.dumps(data)
  >>>printpstr
  (dp0
  S'name'
  p1
  S'python'
  p2
  sS'site'
  p3
  S'pythontab.com'
  p4
  s.

将数据转换成序列化字符串,并写入文件:

  importpickle
  data={'name':'python','site':'pythontab.com'}
  #打开文件,然后将data写入
  withopen('dump.data','wb')asf:
  pickle.dump(data,f)
  #同样读取的时候也需要打开文件
  withopen('dump.data','rb')asf:
  data_load=pickle.load(f)
  printdata_load

结果:

{'name':'python','site':'pythontab.com'}

文件中显示的内容与上面一致

json的用法

json的用法和pickle是一样的

importjson
data={'name':'python','site':'pythontab.com'}
jstr=json.dumps(data)
printjstr,type(jstr)

结果:


{"name":"python","site":"pythontab.com"}


注意:看起来好像是个字典,但要注意了,实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。

那pickle和json有什么区别呢?

json是可以在不同语言之间交换数据的,而pickle只在python之间使用。

json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。


最后想要了解更多关于Python发展前景趋势,请关注扣丁学堂python培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供最新的Python视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的Python视频教程课程,让你快速掌握Python从入门到精通开发实战技能。扣丁学堂Python开发工程师技术交流群:279521237


扣丁学堂微信公众号



关注微信公众号获取更多学习资料



查看更多关于"Python开发资讯"的相关文章>>

标签: Python视频教程 Python基础教程 Python爬虫 Python培训 Python开发工程师

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号