Преобразование данных из таблицы в словарь
помогите пожалуйста со следующей проблемой.
Данные из таблицы отображаются в Python в виде списка списков:
[
['S1', 'G1', 'T1', 'N', 'TN1'],
['S1', 'G1', 'T1', 'P', 'TP1'],
['S1', 'G2', 'T2', 'N', 'TN2'],
['S1', 'G2', 'T2', 'P', 'TP2'],
['S2', 'G3', 'T3', 'N', 'TN3'],
['S2', 'G3', 'T3', 'P', 'TP3']
]
Мне нужно, преобразовать список список в словарь такого типа:
{
'S1': {
'G1': {
'T': 'T1',
'P': 'TP1',
'N': 'TN1'
},
'G2': {
'T': 'T2',
'P': 'TP2',
'N': 'TN2'
},
},
'S2': {
'G3': {
'T': 'T3',
'P': 'TP3',
'N': 'TN3'
}
}
}
Как это сделать? Заранее спасибо
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
data = [
['S1', 'G1', 'T1', 'N', 'TN1'],
['S1', 'G1', 'T1', 'P', 'TP1'],
['S1', 'G2', 'T2', 'N', 'TN2'],
['S1', 'G2', 'T2', 'P', 'TP2'],
['S2', 'G3', 'T3', 'N', 'TN3'],
['S2', 'G3', 'T3', 'P', 'TP3']
]
res = dict()
for obj in data:
if obj[0] not in res:
res[obj[0]] = dict()
if obj[1] not in res[obj[0]]:
res[obj[0]][obj[1]] = dict()
res[obj[0]][obj[1]]['T'] = obj[4]
res[obj[0]][obj[1]][obj[3]] = obj[4]
print(res)
Но c T непонятно как быть, например если будут такие данные:
['S1', 'G1', 'T1', 'N', 'TN1'],
['S1', 'G1', 'T2', 'N', 'TN2'],