my input looks like this:
test_file = [['ref1', 'test1', 2],
['ref2', 'test1', 3],
['ref3', 'test2', 4],
['ref1', 'test2', 4],
['ref2', 'test2', 1],
['ref1', 'test1', 4],
['ref1', 'test1', 5]]
And I'm trying to get a nested dictionary like this:
desired_output = {'ref1':{'test1':[2,5,4]},
'ref1':{'test2':[4]},
'ref2':{'test1':[3]},
'ref2':{'test2':[1]},
'ref3':{'test2':[4]}}
I tried to use defaultdict by appending the values to the second key, however, I got this error:
AttributeError: 'collections.defaultdict' object has no attribute 'append'
So, I tried this:
for entry in test_file:
nest1 = {}
try:
nest1[entry[1]].append(entry[2])
except KeyError:
nest1[entry[1]] = [entry[2]]
try:
mynestdict[entry[0]].append(nest1)
except KeyError:
mynestdict[entry[0]] = [nest1]
print(dict(mynestdict))
But I'm getting this:
{'ref1': [{'test1': [2]}, {'test2': [4]}, {'test1': [4]}, {'test1': [5]}],
'ref2': [{'test1': [3]}, {'test2': [1]}],
'ref3': [{'test2': [4]}]}
I'm not familiar with nested dictionaries and I really would like to understand them, any suggestions?