18 lines
501 B
Python
18 lines
501 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
from benedict.dicts.keylist import keylist_util
|
|
from benedict.utils import type_util
|
|
|
|
|
|
def unflatten(d, separator='_'):
|
|
new_dict = d.copy()
|
|
new_dict.clear()
|
|
keys = list(d.keys())
|
|
for key in keys:
|
|
value = d.get(key, None)
|
|
new_value = unflatten(
|
|
value, separator=separator) if type_util.is_dict(value) else value
|
|
new_keys = key.split(separator)
|
|
keylist_util.set_item(new_dict, new_keys, new_value)
|
|
return new_dict
|