I have an input dictionary:
d={'AM-tv': 1.2,
'AM-rs': 1.3,
'AM-pq': 1.2,
'BR-MN': 1.3,
'BR-tN': 1.3,
'BR-tq': 1.4}
Expected Output
d={'AM':{'tv':1.2,'rs':1.3,'pq':1.2},'BR':{'MN':1.3,'tN':1.3,'tq':1.4}
Is there any way to produce nested dictionary from pairs of the input dictionary?
>Solution :
One way is to split the keys and use dict.setdefault to initialize inner dicts:
out = {}
for k,v in d.items():
o,i = k.split('-')
out.setdefault(o, {})[i] = v
Output:
{'AM': {'tv': 1.2, 'rs': 1.3, 'pq': 1.2},
'BR': {'MN': 1.3, 'tN': 1.3, 'tq': 1.4}}