json和pickle模块

什么是序列化?

  序列化就是将内存中的数据类型转换成另外一种格式

  即:

    字典==>序列化==>其他的格式==>存到硬盘

    硬盘==>读取==>其他格式==>反序列化==>字典

  

为什么要序列化

  1, 持久爆出程序的运行状态

  2, 数据的跨平台交互

如何序列化

  json 

    优点: 这个格式是一种通用的格式,所有编程语言都能识别

    缺点: 不能识别所有python类型

    强调: json格式不能识别单引号

  pickle

    优点: 能识别所有python类型

    缺点: 只能被python这门编程语言识别

import json

dic={'k1':True,'k2':10,'k3':'egon','k4':'你好啊'}

# # # 序列化
dic_json=json.dumps(dic)
print(dic_json,type(dic_json))

# # # 持久化
with open('a.json',mode='wt',encoding='utf-8') as f:
    f.write(dic_json)

#运行结果
{"k1": true, "k2": 10, "k3": "egon", "k4": "u4f60u597du554a"} <class 'str'>


#a.json中的内容
{"k1": true, "k2": 10, "k3": "egon", "k4": "u4f60u597du554a"}
# 序列化+持久化 (会在a.json中直接写入)
with open('a.json',mode='wt',encoding='utf-8') as f:
    json.dump(dic,f)
# # 从文件中读取json格式化的字符
with open('a.json',mode='rt',encoding='utf-8') as f:
    dic_json=f.read()
#
# # 反序列化
dic=json.loads(dic_json)
print(dic,dic['k1'])

# 读取文件内容+发序列化
with open('a.json',mode='rt',encoding='utf-8') as f:
    dic=json.load(f)
    print(dic['k1'])


#运行结果
{'k1': True, 'k2': 10, 'k3': 'egon', 'k4': '你好啊'} True
True
原文地址:https://www.cnblogs.com/kp1995/p/10073056.html