pickle & json &shelve


用于序列化的两个模块


  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换
  • Json模块提供了四个功能:dumps、dump、loads、load
  • pickle模块提供了四个功能:dumps、dump、loads、load
  • dumps序列数据为字节和字符串 dump序列化数据到文件
 JSON 只能对字符串 字典 列表 元组序列化和反序列化,但逐个序列化数据时反序列化时也只能逐个反序列化
import json
with open('test.txt','w') as f:
    dic={'user':"howhy","age":12}
    data=json.dumps(dic) 
    f.write(data)    #最后两行可以用json.dump(dic,f)代替

import json
with open('test.txt','rb') as f:
    data=f.read()
    print(json.loads(data))#最后两行可以用print(json.load(f))代替
  pickle几乎可以对任何对象序列化和反序列化
import pickle
with open('test.txt','w') as f:
    dic={'user':"howhy","age":12}
    data=pickle.dumps(dic) 
    f.write(data)    #最后两行可以pickle.dump(dic,f)代替

import pickle
with open('test.txt','rb') as f:
    data=f.read()
    print(pickle.loads(data))#最后两行可以用print(pickle.load(f))代替

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

 

 1 import shelve
 2 d=shelve.open('test1.txt')
 3 dic={'user':'user1','age':13}
 4 d['user']=dic
 5 d.close()  
 6 
 7 import shelve
 8 s=shelve.open('test1.txt')
 9 print(s['user'])
10 s.close()

 


 

 
 
 
 

 

posted @ 2016-07-05 10:07  howhy  阅读(92)  评论(0)    收藏  举报