I have a naive \"parser\" that simply does something like:
[x.split(\'=\') for x in mystring.split(\',\')]
However mystring can be something like<
Could I suggest that you use the split operations as before. But split at the equals first, then splitting at the rightmost comma, to make a single list of left and right strings.
input =
"bob=whatever,king=kong,banana=herb,good,yellow,thorn=hurts"
will at first split become
first_split = input.split("=")
#first_split = ['bob' 'whatever,king' 'kong,banana' 'herb,good,yellow,thorn' 'hurts']
then splitting at rightmost comma gives you:
second_split = [single_word for sublist in first_split for item in sublist.rsplit(",",1)]
#second_split = ['bob' 'whatever' 'king' 'kong' 'banana' 'herb,good,yellow' 'thorn' 'hurts']
then you just gather the pairs like this:
pairs = dict(zip(second_split[::2],second_split[1::2]))