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'x80x03c__main__
func
qx00.'
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