import re
line = 'A=15, B=8, C=false, D=[somevar, a=0.1, b=77, c=true]'
regexp = '(\\w*)=(\\[[^\\]]*\\]|[^,]*),?\\s*'
print(dict((match.group(1), match.group(2)) for match in re.finditer(regexp,
    line)))
python — создание словаря из строк, разделенных запятыми, содержащих вложенные значения