python 对象持久化 pickle模块

用到python 序列化 比如我们可以把一些配置的信息放到数组,字典或者做为类的属性,然后对数据进行 序列化,再把序列化好的数据放到文件里或者直接放到数据库里,这样可以方便下次要用数据的时候 对数据进行反序列化,再进行操作。 下面给个例子: 主要是用到了python pickle 先是定义一个字典。然后把数据序列化后放到文件里 info = {} info = {'name':'jay','age':20} import pickle f = open('1.txt','wb') pickle.dump(info,f) 现在看下1.txt里面的内容: (dp0 S'age' p1 I20 sS'name' p2 S'jay' p3 s. 重新反序列话下 f = open('1.txt','r') info = pickle.load(f) print info info的内容又变成: {'age': 20, 'name': 'jay'} 再来个类的把:

class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age

name = 'jay'
age = 20
person = Person(name,age)

这里其实可以用python 动态创建类的方法也可以 import pickle f = open('1.txt','wb') pickle.dump(person,f) 现在再看下1.txt的内容: ccopy_reg _reconstructor p0 (c__main__ Person p1 c__builtin__ object p2 Ntp3 Rp4 (dp5 S'age' p6 I20 sS'name' p7 S'jay' p8 sb. 重新反序列话下

import pickle
class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age

name = 'jay'
age = 20
person = Person(name,age)
f = open('1.txt','r')
info = pickle.load(f)
print info.__dict__

的内容又变成: {'age': 20, 'name': 'jay'} 感觉用pickle 作序列化非常好用,特别是处理一些缓存数据非常好 [python 引用和拷贝]对于处理一些应用帮助还是挺大的。

上一篇:linux下的struct sigaction


下一篇:response.addCookie(cookie)添加cookie失败.