class SpecObject(object): """自定义类""" fields_map = {} def dict_to_show(self, **kwargs): """显示对象""" def dict_to_save(self, **kwargs): """存储对象""" _dict_ = dict() for key in self.__dict__.keys(): if type(self.__dict__[key]).__name__ in ['str', 'int', 'float', 'dict', 'bool', 'tuple']: _dict_[self.fields_map[key]] = self.__dict__[key] elif type(self.__dict__[key]).__name__ == 'list': if len(self.__dict__[key]) == 0: _dict_[self.fields_map[key]] = self.__dict__[key] elif type(self.__dict__[key][0]).__name__ in ['str', 'int', 'float', 'dict', 'bool', 'tuple']: _dict_[self.fields_map[key]] = self.__dict__[key] else: _dict_[self.fields_map[key]] = [item.dict_to_save() for item in self.__dict__[key]] elif self.__dict__[key] is None: _dict_[self.fields_map[key]] = self.__dict__[key] else: _dict_[self.fields_map[key]] = self.__dict__[key].dict_to_save() if 'columns' in kwargs: _dict_ = {key: _dict_[key] for key in kwargs['columns']} return _dict_