擅长:python、mysql、java
<p>你也可以这样做:</p>
<pre><code>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])
</code></pre>
<p>输出:</p>
<pre><code>[{'id': '1', 'date': '21.05.2018', 'summ': '500'}, {'id': '7', 'date': '23.05.2018', 'summ': '500', 'owner': 'guest'}]
</code></pre>