json,pickle模块

json

  • json文件并不是python独有的,所有的语言都有json,可以跨平台/语言传输数据
  • json文件中只能写入python中的dict/list/str/in/float/bool/None数据类型
import json

序列化

  • 保存数据(从内存到硬盘这个过程叫做序列化,这个序列化必须得规定格式)
  • 这里保存的格式为json

反序列化

  • 把json文件从硬盘中读取到内存

1.dumps / loads

dic = {'name': 'lilei'}

res = json.dumps(dic)
print(res, type(res))

res = json.loads(res)
print(res, type(res))
{"name": "lilei"} <class 'str'>
{'name': 'lilei'} <class 'dict'>

2.dump / load

with open('test.json', 'w', encoding='utf-8') as fw:
    json.dump(dic, fw)
    
with open('test.json', 'r', encoding='utf-8') as fr:
    data = json.load(fr)
    
print(data)
{'name': 'lilei'}

pickle

  • pickle也是序列化与反序列化的过程
  • pickle支持python中的任意数据类型,所以不能跨平台(不同平台的函数一定是不同的)
  • pickle模块序列化过程是以二进制形式来进行转化的

1.dumps / loads

import pickle

def func():
    print('f1')
    
res = pickle.dumps(func)
print(res)
pickle.loads(res)()
b'\x80\x03c__main__\nfunc\nq\x00.'
f1

2.dump/load

with open('test.pickle', 'wb') as fw:   # 格式为pkl也可以
    pickle.dump(func, fw)
    
with open('test.pickle', 'rb') as fr:
    data = pickle.load(fr)
  
data()
f1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。