用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

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

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

 

json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串

json.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

pickle.dumps 将数据通过特殊的形式转换为只有Python语言认识的字符串

pickle.dump 将数据通过特殊的形式转换为只有Python语言认识的字符串,并写入文件

 

Json序列化举例:

# json是所有语言中都通用的,适用于不同语言进行数据交互。
# 但json只能处理简单的数据类型,如果要处理复杂的,可以使用pickle
# 应用场景举例:当你使用虚拟机(或者玩游戏)时,中间你突然有点别的事情,于是要将虚拟机挂起,以便下次使用时还是现在的状态。
# 于是就用到了json,json序列化将虚拟机目前的状态(比如进行了什么操作,打开了什么文件)保存在文件中,
# 当你干完别的事,再次启动虚拟机时,json反序列化会将文件中保存的状态从文件中读出来,于是你就可以继续上次的操作了。

# dump和load配合使用可以实现序列化和反序列化,
# 在Python2中可以dump很多次,也可以load很多次,他们一一对应,但是其实这没什么意义
# 但在Python3中,可以dump很多次,但是当dump多次时,load会报错,所以记住在Python3中永远不要dump多次
import json
info = { "name":"Alex", "age":22 }

with open('text.txt','w',encoding='utf-8') as f:
    #f.write(info) #报错,字典不能写入文件中,字符串能写入文件中
    #f.write(str(info)) #太low了
    print(type(json.dumps(info)))  # <class 'str'>
    #f.write( json.dumps(info) ) # 高级做法1
    json.dump(info,f)  # 高级做法2,同上
json序列化.py

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-05
  • 2021-08-03
  • 2021-12-14
  • 2022-12-23
  • 2021-08-11
猜你喜欢
  • 2021-12-08
  • 2021-06-13
  • 2021-06-08
  • 2022-02-02
  • 2021-09-11
  • 2022-12-23
  • 2021-08-19
相关资源
相似解决方案