json与pickle(python3入门)

import json

'''
1. 什么是序列化
    序列化就是把内存中数据类型转换成一种可以存储到硬盘/基于网络传输的中间格式
    反序列化就是将中间格式转成相对应的数据类型
2. 为何要序列化
    1. 持久保存状态
    2. 数据跨平台交互
3. 如何序列化
    json:
        优点: 是一种通用的格式
        缺点: 只能识别部分python数据类型
    pickle:
        优点: 可以识别所有python的数据类型
        缺点: 只能被python识别

'''


# dic = {'k1': 'egon', 'k2': 'alex'}

#json.dumps()   #序列化
# res = json.dumps(dic)     #dumps 是把python定义的数据类型 序列化为 json格式的字符串
# print(res, type(res))

#json.loads()   #反序列化
# with open('exercise2.json','wt',encoding='utf-8') as f1:
#     f1.write(res)     #将json格式的字符串写入文件f1


# with open('exercise2.json','rt',encoding='utf-8') as f1:
#     res = json.loads(f1.read())   #f1.read() 读取文件f1,然后将读取的内容 反序列化赋值给res
#     print(res,res['k1'])


#json.dump()    #将序列化和写入的动作,用一行代码实现
# with open('exercise1.json', 'wt', encoding='utf-8') as f1:
#     json.dump(dic, f1)  # dump执行过程:其中做了dumps,然后将dumps的结果写入f1

#json.load()    #将读取json文件 与 反序列化的动作 ,用一行代码实现
# with open('exercise1.json', 'rt', encoding='utf-8') as f1:
#     res = json.load(f1)  # load执行过程:其中做了loads,将json文件中的json文件的字符串类型反序列化成原来定义的python数据类型
#     print(res, type(res))


#pickle 的用法和json一模一样,(但是pickle支持读写python中所有的数据类型) 不一一举例了。

猜你喜欢

转载自www.cnblogs.com/lich1x/p/10056350.html