Читайте файл построчно и смотрите, содержит ли строка -
.Если это так, то вы знаете, что оттуда вы должны начать делать словарь.В противном случае вы добавляете сформированный словарь в список.Этот код делает это -
travel_list = []
time_dict = dict()
with open('tmp.txt', 'r') as f:
for line in f:
s = line.rsplit('-', 1)
if '-' in line:
time_dict[s[0]] = s[1].rstrip()
else:
time_dict = dict()
travel_list.append({line.rstrip(): time_dict})
Вывод:
Out[20]:
[{'By walk': {'7.00 - 8.00 ': ' 150',
'8.00 - 9.00 ': ' 175',
'9.00 - 10.00 ': ' 120',
'10.00 - 11.00 ': ' 30',
'11.00 - 12.00 ': ' 10',
'12.00 - 13.00 ': ' 10',
'13.00 - 14.00 ': ' 10',
'14.00 - 15.00 ': ' 10',
'15.00 - 16.00 ': ' 10',
'16.00 - 17.00 ': ' 175',
'17.00 - 18.00 ': ' 150',
'18.00 - 19.00 ': ' 50'}},
{'Car': {'7.00 - 8.00 ': ' 150',
'8.00 - 9.00 ': ' 175',
'9.00 - 10.00 ': ' 120',
'10.00 - 11.00 ': ' 30',
'11.00 - 12.00 ': ' 10',
'12.00 - 13.00 ': ' 10',
'13.00 - 14.00 ': ' 10',
'14.00 - 15.00 ': ' 10',
'15.00 - 16.00 ': ' 10',
'16.00 - 17.00 ': ' 175',
'17.00 - 18.00 ': ' 150',
'18.00 - 19.00 ': ' 50'}},
{'Bus': {'7.00 - 8.00 ': ' 150',
'8.00 - 9.00 ': ' 175',
'9.00 - 10.00 ': ' 120',
'10.00 - 11.00 ': ' 30',
'11.00 - 12.00 ': ' 10',
'12.00 - 13.00 ': ' 10',
'13.00 - 14.00 ': ' 10',
'14.00 - 15.00 ': ' 10',
'15.00 - 16.00 ': ' 10',
'16.00 - 17.00 ': ' 175',
'17.00 - 18.00 ': ' 150',
'18.00 - 19.00 ': ' 50'}}]