Вы можете использовать str.split()
для этого типа:
Код:
def process_data(some_data):
return_data = {}
for datum in some_data:
main_key, values = datum.split('#')
return_data.setdefault(main_key, []).append(dict(
tuple(v.split(':')) for v in values.split('&')
))
return return_data
Тестовый код:
data = [x.strip() for x in """
GETMOVIE#genre:Action&year:1990-2007&country:USA
GETMOVIE#genre:Animation&year:2000-2010&country:Russia
GETMOVIE#genre:X&year:Y&country:Z
""".split('\n')[1:-1]]
print(data)
print(process_data(data))
Результаты:
['GETMOVIE#genre:Action&year:1990-2007&country:USA',
'GETMOVIE#genre:Animation&year:2000-2010&country:Russia',
'GETMOVIE#genre:X&year:Y&country:Z']
{'GETMOVIE': [
{'genre': 'Action', 'year': '1990-2007', 'country': 'USA'},
{'genre': 'Animation', 'year': '2000-2010', 'country': 'Russia'},
{'genre': 'X', 'year': 'Y', 'country': 'Z'}
]}