Provided that you assume that there are no comma's and/or colons in your strings, you might be able to recover by grabbing everything between :
and ,
as a string. This could, for example, be accomplished by splitting with a regular expression.
In [1]: s = "'comment1': 'bla bla it's you're can't bla bla','comment2': 'bla bla it's you're can't bla bla',"
In [2]: r = re.compile(r"[:,]")
In [3]: r.split(s)
Out[3]:
["'comment1'",
" 'bla bla it's you're can't bla bla'",
"'comment2'",
" 'bla bla it's you're can't bla bla'",
'']
Granted, that is a pretty big "if". If there is even a chance that your strings contain comma/colon characters then deceze is correct and you are SOL.
In general, there is no solution to this problem. To see this, consider the following (somewhat contrived) example.
... 'comment': 'this is', 'my comments': 'Hi',
If strings, wrapped in '
are allowed to contain '
, then there is no way to tell if this is meant as 'comment': "this is', 'my comments': 'Hi'",
or 'comment': "this is", 'my comments': "Hi", ...