Python3之json&pickle模块

pickle模块用于将Python对象序列化字节流。使用反序列化可以将字节流转换回Python对象。

pickle模块适用于多种一般Python对象:None,数字,字符串,元祖,列表和只包含可序列化对象的字典,用户定义类的实例(不会保存相应的类定义)。

pickle专为python设计,支持python所有的数据类型。但只能在python中使用,存储数据占空间大。

对象 ----->字节流

  1: import pickle
  2: date = {'k1': 1, 'k2': 2}
  3: pickle_str = pickle.dumps(date)
  4: print(pickle_str)

将字节流写入文本:

  1: with open('测试文本1.txt', 'wb') as f:
  2:     pickle.dump(date, f)

字节流 ----> 对象:

  1: pickle_loads = pickle.loads(pickle_str)
  2: print(pickle_loads)

从文本中加载:

  1: with open('测试文本1.txt', 'rb') as fp:
  2:     pickle_load = pickle.load(fp)
  3: print(pickle_load)

json模块用于使用JSON序列化和反序列化对象。它的格式只是JavaScript语法的子集。

json体积小,跨语言使用。但是在Python中它只支持int\str\list\tuple\dict这几种类型。

Python数据 ----> 特殊的字符串

  1: import json
  2: date = {'k1': 1, 'k2': 2}
  3: 
  4: json_str = json.dumps(date)
  5: print(json_str)

写入文本:

  1: with open('测试文本1.txt', 'w') as f:
  2:     json.dump(date, f)

特殊的字符串 ----> Python数据

  1: json_loads = json.loads(json_str)
  2: print(json_loads)

写入文本:

  1: with open('测试文本1.txt', 'r') as fp:
  2:     json_load = json.load(fp)
  3: print(json_load)

猜你喜欢

转载自www.cnblogs.com/haoqirui/p/10028193.html