SEQS =tuple,list,set,frozensetclassJsonize(object):def__init__(self):super(Jsonize, self).__init__()defFromDict(d):
this = Jsonize()# this = type(Jsonize.__name__, (Jsonize,), d)for k, v in d.items():ifisinstance(v,dict):setattr(this, k, FromDict(v))elifisinstance(v, SEQS):setattr(this, k,[FromDict(each)ifisinstance(each,dict)else each for each in v])else:setattr(this, k, v)return this
defToDict(obj):
d ={}for k, v invars(obj).items():if k.startswith("__")and k.endswith("__"):continueifisinstance(v, Jsonize):
d[k]= ToDict(v)elifisinstance(v, SEQS):
d[k]=[ToDict(each)ifisinstance(v, Jsonize)else each for each in v]else:
d[k]= v
return d