Вы можете разобрать его, просто переопределив разделитель (представьте, что снеговик - ваш DLE):
import csv
testdata='ID=123☃KEY=test☃KEY2=VAL123\nID=456☃KEY=test2☃KEY2=val456'
testdataiter=testdata.splitlines()
reader = csv.reader(testdataiter, delimiter='☃')
for row in reader:
print (','.join(row))
вывод:
ID=123,KEY=test,KEY2=VAL123
ID=456,KEY=test2,KEY2=val456
Проверьте справку для модуля csv - любойиз параметров диалекта можно переопределить в конструкторе читателя.
Чтобы разобрать ваш KEY = VAL в dict, измените на:
...
for row in reader:
rowdict = dict([x.split('=',1) for x in row])
print rowdict
output:
{'KEY2': 'VAL123', 'ID': '123', 'KEY': 'test'}
{'KEY2': 'val456', 'ID': '456', 'KEY': 'test2'}