Discuss / Python / 练习,加油

练习,加油

Topic source
# -*- coding: utf-8 -*-
import pickle
import json
#pickle.dumps(),把对象序列化为bytes,然后写入文件.
d = dict(name='Bob',age=20,score=88)
print(pickle.dumps(d))
f = open('dump.txt','wb')
f.write(pickle.dumps(d))
f.close()
#pickle.dump(),把对象直接序列化后写入file-like Object
f = open('dump.txt','wb')
pickle.dump(d,f)
f.close()

#类序列化

class Student(object):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score
    def __str__(self):
        return 'Student object (name: %s, age: %d ,score: %d)' % (self.name,self.age,self.score)
s = Student('Bob', 20, 88)

def student2dict(std):
    return {
        'name':std.name,
        'age':std.age,
        'score':std.score
        }
print(json.dumps(s, default=student2dict))
#简化
print(json.dumps(s, default=lambda obj: obj.__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))

  • 1

Reply