def from_json(cls, parsed_json):
# with introspection, get arguments of the constructor
parsed_json['json'] = parsed_json.copy()
params = cls.__attrs_attrs__
args = []
kwargs = OrderedDict()
for param in params:
param_name = param.name.lstrip('_')
# if not a keyword argument
if param.default == attr.NOTHING:
args.append(json_get(parsed_json, param_name))
# if it's a keyword argument
else:
kwargs[param_name] = parsed_json.get(param_name, None)
o = cls(*args, **kwargs)
return o
评论列表
文章目录