json、pickle、shelve
#!/usr/bin/env python # encoding: utf-8 """ @version: python3.6 @file: json_pickle.py @time: 2017/11/2 13:18 """ '''用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps、dump、loads、load pickle模块提供了四个功能:dumps、dump、loads、load json与pickle基本基本相同 ''' #jsom写入 import json dic ={'name':'alex','age':'18'} f = open('JSON_text','w') data = json.dumps(dic) f.write(data) f.close #json读出 import json f = open('JSON_text','r') data = f.read() data = json.loads(data)#转化成字典 print(data) #dumps、loads 与 dump、load使用的区别 import json d ={'name':'alex','age':'18'} f=open('json_text_dump','w') data = json.dump(d,f)#data = json.dump(d,f)等于f = open('JSON_text','w');data = json.dumps(dic)这两个表达式 f.close() import json f = open('json_text_dump','r') data = json.load(f) print('data',data) #pickle写入 且是不可查看的 import pickle dic ={'shopping_car':'computer','price':'7000'} f= open('pickle_text','wb')#write() argument must be str, not bytes 将w改为wb data = pickle.dumps(dic) f.write(data) f.close() #pickle 读出 import pickle f =open('pickle_text','rb')#'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence 将r转化为rb data = f.read() data = pickle.loads(data) print(data) data['shopping_car'] ''' shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 可以对其中的文件进行更改 ''' import shelve f = shelve.open('SHELVE_text') f['info']={'name':'alex','age':'18'} data = f.get('info') print('biaozhi',data) #对文件进行更改 f['lol']={'name':'小提莫','age':'18'} data = f.get('lol') print('genggai',data) #字典的一个方法补充 dict.get('2','3') 表示 查看字典中是否有键 2 如果没有就创建以2为键 3为值的字典 f['kier']={'name':'劫','age':'30'} data = f.get('sex','male') print('2',data) print(data)