import jsonclass A:a = 1class B:b = 2class Test:a = A()b = B()def to_dict(obj):d = {}for name in dir(obj):value = getattr(obj, name)if not name.startswidth("__") and not callable(value):d[name] = valuereturn dtest = Test()json.loads(json.dumps(test, default=to_dict))
