json和pickle模块
作者:互联网
json和pickle模块
1.什么是序列化-------将原本的字典,列表等内容转换成一个字符串的过程就叫做序列化
2.序列化的目的
1.以某种存储形式使自定义对象持久化
2.将对象从一个地方传递到另一个地方
3.使程序更具维护性
json
Json模块提供了四个功能:dumps、loads、dump、load
import json dic={'k1':'v1','k2':'v2','k3':'v3'} print(type(dic)) str_dic = json.dumps(dic) #将字典转换成字符串,转换后的字典中的元素是由双引号表示的 print(str_dic,type(str_dic))#{"k1": "v1", "k2": "v2", "k3": "v3"} <class 'str'> dic2 = json.loads(str_dic)#将一个字符串转换成字典类型 print(dic2,type(dic2))#{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} <class 'dict'> list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}] str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型 print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}] list_dic2 = json.loads(str_dic) print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}] dumps和loads
dump、load
import json f=open('json_file','w') dic = {'k1':'v1','k2':'v2','k3':'v3'} json.dump(dic,f)# #dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件 f.close() f = open('json_file') dic2 = json.load(f) #load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回 f.close() print(type(dic2),dic2)
pickle模块
# -------------------------- import pickle # dic= {'k1':'v1','k2':'v2','k3':'v3'} # str_dic=pickle.dumps(dic) # print(str_dic) #打印的是bytes类型的二进制内容 # # dic2 = pickle.loads(str_dic) # print(dic2) #有吧字典给转换回来了 import time struct_time = time.localtime(1000000000) print(struct_time) f = open('pickle_file','wb') pickle.dump(struct_time,f) f.close() f = open('pickle_file','rb') struct_time2 = pickle.load(f) print(struct_time.tm_year) pickle的dumps,sump和loads,load方法
标签:模块,json,dic,dic2,str,print,pickle 来源: https://www.cnblogs.com/a19960101/p/12011976.html