Вы также можете попробовать что-то вроде этого:
from itertools import takewhile
with open('data.txt') as in_file:
items = [line.strip() for line in in_file.read().split()]
# ['start', 'id=1', 'date=21.05.2018', 'summ=500', 'end', 'start', 'id=7', 'date=23.05.2018', 'summ=500', 'owner=guest']
pos = [i for i, item in enumerate(items) if item == 'start']
# [0, 5]
blocks = [list(takewhile(lambda x: x != 'end', items[i+1:])) for i in pos]
# [['id=1', 'date=21.05.2018', 'summ=500'], ['id=7', 'date=23.05.2018', 'summ=500', 'owner=guest']]
print([dict(x.split('=') for x in block) for block in blocks])
Какие выходы:
[{'id': '1', 'date': '21.05.2018', 'summ': '500'}, {'id': '7', 'date': '23.05.2018', 'summ': '500', 'owner': 'guest'}]