Мои данные разделены на 3 столбца, столбцы 1 и 2 имеют дублированные значения. Я хочу создать вложенный словарь, в котором столбец 1 соответствует ключу 1, столбец 2 - ключу 2, а столбец 3 - значению: my_dict [column1] [column2] = column [3] (что-то вроде сортировки матрицы в excel по 2 уровням) , Но я не знаю, как бороться с ключевой ошибкой на втором уровне.
мой инфил выглядит так:
string_1 val_1 2
string_1 val_2 4
string_2 val_1 3
string_2 val_1 2
string_2 val_1 2
string_3 val_3 1
string_3 val_2 2
for line in infile:
line = line.rstrip('\n')
col = line.split('\t')
try:
filt_dic[col[1]] = {}
filt_dic[col[1]][col[2]].append(col[3])
except KeyError:
filt_dic[col[1]] = {}
filt_dic[col[1]][col[3]] = [col[3]]
На самом деле, он просто добавляет последнее значение на втором уровне, я не знаю, как указать, что это список словарей. Это не правильно:
filt_dict[col[1]].appen({})
or
filt_dict[col[1]] = [{}]
Я знаю, что это за ошибка, но не как ее решить, некоторые предложения?