Closed itaa closed 5 years ago
参考伪代码
def obj2dict(some_obj):
obj_dict = some_obj.__dict__
for key, value in obj_dict.items():
if isinstance(value, 非常见的数据类型):
sub_dict = obj2dict(value)
obj_dict.update({key: sub_dict})
else:
continue
return obj_dict
参考伪代码
class SomeObject(object):
def __init__(self, 字典):
for key, value in d.items():
if isinstance(value, dict):
setattr(self, key, SomeObject(value) if isinstance(value, dict) else value)
else:
setattr(self, key, value)
常见的数据类型为: int, float, bool, complex, str, set, list, tuple, dict
字典转为对象中伪代码第 4-7 行可以使用第 5 行代替。
fish_common, 优化对象序列化 serialize_instance 并实现反序列化功能
应用场景
为便于 python 对象的跨语言传递,特实现相应的对象序列化、反序列化方法;
实现功能
将对象(常见的数据类型int、str、list、dict、set、tuple等除外)的非私有属性递归后返回字典; 如: a.b.c = 1 返回 {'a':{'b': {'c':1}}}
将字典递归成对象形式; 如:{'a':{'b': {'c':1}}} 返回, 对象 a ,a.b.c 的值为 1