diff --git a/openep/io/matlab.py b/openep/io/matlab.py index afe9a7a6..db4f1e61 100644 --- a/openep/io/matlab.py +++ b/openep/io/matlab.py @@ -140,10 +140,10 @@ def _mat_v73_flat_to_nested(data): Args: data (dict): Data loaded from a v7.3 .mat file. """ + nested_data = {} + #nested_dict = lambda: defaultdict(nested_dict) # noqa: E731 - nested_dict = lambda: defaultdict(nested_dict) # noqa: E731 - - nested_data = nested_dict() + #nested_data = nested_dict() for key in data: nested_keys = key.split('/')[1:] @@ -155,14 +155,26 @@ def _mat_v73_flat_to_nested(data): elif len(nested_keys) == 2: key1, key2 = nested_keys + if not key1 in nested_data.keys(): + nested_data[key1] = {} nested_data[key1][key2] = data[key] elif len(nested_keys) == 3: key1, key2, key3 = nested_keys + if not key1 in nested_data.keys(): + nested_data[key1] = {} + if not key2 in nested_data[key1].keys(): + nested_data[key1][key2] = {} nested_data[key1][key2][key3] = data[key] elif len(nested_keys) == 4: key1, key2, key3, key4 = nested_keys + if not key1 in nested_data.keys(): + nested_data[key1] = {} + if not key2 in nested_data[key1].keys(): + nested_data[key1][key2] = {} + if not key3 in nested_data[key1][key2].keys(): + nested_data[key1][key2][key3] = {} nested_data[key1][key2][key3][key4] = data[key] else: @@ -171,6 +183,7 @@ def _mat_v73_flat_to_nested(data): return nested_data + def _load_mat_v73(filename): """ Load a v7.3 MATLAB file.