# -*- 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))
Sign in to make a reply
没法跟你交流