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?