33 lines
1000 B
Python
33 lines
1000 B
Python
|
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
|