06-json和pickle模块

一、什么是序列化&反序列化

内存中的数据类型 —> 序列化 —> 特定的格式(json格式或者pickle格式)

内存中的数据类型 <— 反序列化 <— 特定的格式(json格式或者pickle格式)

二、为何要序列化

序列化得到结果:特定的格式的内容有两种类型

  1. 可用于存储:用于存档
  2. 传输给其他平台使用:跨平台数据交互
Python Java
列表 特定的格式 数组

强调:

  1. 针对1的特定格式:可是一种专门的格式 —— pickle只有python可以识别
  2. 针对2的特定格式:应该是一种通用、能够被所有语言识别的格式 —— json

三、如何序列与反序列

  1. 持久保存状态
  2. 跨平台数据交互
# 实例(序列化)
import json
dumps_res = json.dumps([1,"aaa",True,False])
print(dumps_res,type(dumps_res)) 
# output:[1, "aaa", true, false] <class 'str'>
# 实例(反序列化)
loads_res = json.loads(dumps_res)
print(loads_res,type(loads_res))
# output:[1, 'aaa', True, False] <class 'list'>
# 将序列化的结果写入文件的复杂方法
json_res = json.dumps([1,'aaa',True,False])
with open("test.json",mode="wt",encoding="utf-8") as f:
    f.write(json_res)

 # 将序列化的结果写入文件的简单方法
with open("test.json",mode="wt",encoding="utf-8") as f:
    json.dump([1,"aaa","abc"],f)
# 从文件读取json文件的字符串格式进行反序列化的复杂方法
with open("test.json",mode="rt",encoding="utf-8") as f:
    json_res = f.read()
    l = json.loads(json_res)
    print(l)

# 从文件读取json文件的字符串格式进行反序列化的复杂方法
with open('test.json',mode='rt',encoding='utf-8') as f:
    l=json.load(f)

猜你喜欢

转载自www.cnblogs.com/zhuyouai/p/12608308.html