def flattenDevice(device: dict) -> dict: flattenedDict = {} for key in device.keys(): typ = type(device[key]) if typ is str or typ is int or typ is float: flattenedDict.update({str(device["Type"]) + "/" + str(key): device[key]}) elif typ is dict: flat = flattenDict(device[key]) flattenedDict.update({str(device["Type"]) + "/" + str(key): {}}) for key2 in flat.keys(): flattenedDict[str(device["Type"]) + "/" + str(key)].update({key2: flat[key2]}) elif typ is list: flattenedDict.update({str(device["Type"]) + "/" + str(key): device[key]}) return flattenedDict def flattenDict(device: dict) -> dict: flattenedDict = {} typ = type(device) if typ is str or typ is int or typ is float: flattenedDict.update({"": device}) elif typ is dict: return device elif typ is list: flattenedDict.update({"": device}) return flattenedDict