'Nested Dictionary Manipulation
I have a nested dictionary in this structure:
dictionary = {chapter: {section: {sub_section: {'a':{...}, 'b':{...}, 'c':{...}, 'd':{...}, 'e':{...}}}}}
Assume chapter, section, sub_section are values of list variables.
For every possible combination, key values 'a,b,c,d,e' are same.
I want 'c' dictionary to contain 'c','d','e' dictionaries.
How to convert the dictionary to the new dictionary?
new_dict = {chapter: {section: {sub_section: {'a':{...}, 'b':{...}, 'c':{ 'c':{...}, 'd':{...}, 'e'={...}}}}}}
If possible less label or name based, more index or level based approach is appreciated.
Solution 1:[1]
Make a copy of the whole nested dictionary. Then copy the c, d, e elements into the new dictionary's c element, and delete the unnecessary d and e elements.
from copy import deepcopy
new_dict = deepcopy(dictionary)
ss = new_dict['chapter']['section']['subsection']
ss['c'] = {key: ss[key] for key in ['c', 'd', 'e']}
for key in ['d', 'e']:
del ss[key]
You say you don't want this to be label based, but I don't see any logic that can be used to select the elements to be moved without just listing the labels.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Barmar |
