在传递对象时,确保只有那些需要序列化和传递的值才进行反序列化。以下是一个示例:
class Person: def init(self, name, age=None): self.name = name if age is not None: self.age = age
def to_dict(self):
d = {'name': self.name}
if hasattr(self, 'age'):
d['age'] = self.age
return d
@classmethod
def from_dict(cls, d):
name = d['name']
if 'age' in d:
age = d['age']
else:
age = None
return cls(name, age=age)
person = Person('Bob', 30) # 只传递需要序列化和传递的值 d = person.to_dict() print(d) # {'name': 'Bob', 'age': 30}
person2 = Person.from_dict(d) # 反序列化时只反序列化已传递的值 print(person2.name) # Bob print(person2.age) # 30
上一篇:不要反序列化未传递的值