python json、 pickle 、shelve 模块

时间:2023-03-09 07:12:55
python json、 pickle 、shelve 模块

json 模块

用于序列化的模块

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

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

#!/usr/bin/env python3
# -*- coding:utf-8 -*- info = {"name":"wuzun", "age":28, "company":"北京...计算机科技有限公司"} with open('info.txt','w', encoding='utf-8') as f:
f.write(json.dumps(info)) with open('info.txt','r', encoding='utf-8') as f:
# info = json.loads(f.read())
info = json.load(f)
print('type info:', type(info))
print(info)
print(info["company"])

pickle 模块

用于序列化的模块

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

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

#!/usr/bin/env python3
# -*- coding:utf-8 -*- import pickle def func1():
print('hello dage') # info = {
# 'name':"wuzun",
# 'age':28,
# 'func': func1
# }
# with open('info.txt', 'wb') as f:
# f.write(pickle.dumps(info)) with open('info.txt','rb') as f:
info = pickle.load(f) print('type info:', type(info)) print(info)
info['func']()

shelve 模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

#!/usr/bin/env python3
# -*- coding:utf-8 -*- mport shelve d = shelve.open('shelve_test') #打开一个文件 class Test(object):
def __init__(self,n):
self.n = n t = Test(123)
t2 = Test(123334) name = ["alex","rain","test"]
d["test"] = name #持久化列表
d["t1"] = t #持久化类
d["t2"] = t2 d.close()