Python培训之序列化模块pickle和json的使用和区别

发布时间:2022-11-26 09:51:17 人气:56 作者:多测师

  这是用于序列化的两个模块:

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

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

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

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

  pickle用法

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

  >>> import pickle

  >>> data = {'name':'python', 'site':'pythontab.com'}

  >>> pstr = pickle.dumps(data)

  >>> print pstr

  (dp0

  S'name'

  p1

  S'python'

  p2

  sS'site'

  p3

  S'pythontab.com'

  p4

  s.

Python培训之序列化模块pickle和json的使用和区别

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

  import pickle

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

  #打开文件,然后将data写入

  with open('dump.data', 'wb') as f:

  pickle.dump(data, f)

  #同样读取的时候也需要打开文件

  with open('dump.data', 'rb') as f:

  data_load = pickle.load(f)

  print data_load

  输出结果

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

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

  json的用法

  json的用法和pickle是一样的

  import json

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

  jstr = json.dumps(data)

  print jstr, type(jstr)

  输出结果

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

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

  那pickle和json有什么区别呢?

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

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

  以上内容为大家介绍了Python培训之序列化模块pickle和json的使用和区别,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线