def from_json_string(cls, string): data = json.loads(string) name = data['name'] json_devices = data['devices'] devices = [] for d in json_devices: devices.append( Device.from_json_string(json.dumps(d))) return Person(name, devices)