1

Im trying to convert a dictionary into a especial dictionary like this:

{'deployment.easset': 'name', 'deployment.service.source': 'service'}

Transform to:

'deployment.easset': 'name' --> {"deployment":{"easset":"name}}
'deployment.service.source': 'service' --> {"deployment":{"easset":{"source":"service"}}}

My actual pathetic code:

diccionary={}
data={'deployment.easset': 'name', 'deployment.service.source': 'service'}
for key, value in data.items():
    for i in key.split("."):
        diccionary[i]=[value]
print(diccionary)

Thank you a lot!!

Ok here is the solution:

def insert(data):
res = {}
for k, v in data.items():
    res_tmp = res
    levels = k.split(".")
    for level in levels[:-1]:
        res_tmp = res_tmp.setdefault(level, {})
    res_tmp[levels[-1]] = v
return res

result = insert({'deployment.easset.cosa.pepe.juan': 'name'})

  • note, you cannot have 2 keys `deployment`. What is your expected output exactly? Maybe you want list of dicts? – buran Sep 09 '21 at 09:17

0 Answers0