码迷,mamicode.com
首页 > 其他好文 > 详细

序列化

时间:2018-01-14 18:41:32      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:[]   lam   模块   body   json   open   sel   self   lambda   

(1)python提供了pickle模块实现序列化
import pickle
d=dict(name=‘Bob‘,age=30,score=98)
pickle.dumps(d) # 把任意对象序列化为一个bytes

f=open(‘dump.txt‘,‘wb‘) # 以二进制写模式打开
pickle.dump(d,f)
f.close()

f=open(‘dump.txt‘,‘rb‘)
pickle.load(f)
f.close()

(2)JSON
JSON类型 Python类型
{} dict
[] list
"string" str
1234.56 int或float
true/false True/False
null None

import json
d=dict(name=‘Bob‘,age=30,score=88)
json.dumps(d)

json_str=‘{"age":20,"score":88,"name":"bob"}‘
json.loads(json_str)

import json
class Student(object):
def __init__(self,name,age,score):
self.name=name
self.age=age
self.score=score
def student2dict(std):
return {
‘name‘:std.name,
‘age‘:std.age,
‘acore‘:std.score
}
s=Student(‘bob‘,20,99)
print(json.dumps(s,default=student2dict))
print(json.dumps(s,default=lambda obj:obj.__dict__)) # class的实例都有一个__dict__属性,他就是一个dict

def dict2student(d):
return Student(d[‘name‘],d[‘age‘],d[‘score‘])
json_str=‘{"age":20,"score":88,"name":"bob"}‘
print(json.loads(json_str,object_hook=dict2student))

序列化

标签:[]   lam   模块   body   json   open   sel   self   lambda   

原文地址:https://www.cnblogs.com/xyl-share-happy/p/8283721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!