You are looking at the Python string representation. It's valid Python code, containing valid JSON.
Print the value:
>>> imp
>>> data = '[for: css=a[title="See LLCAutoSept files"]]'
>>> print json.dumps(data)
"[for: css=a[title=\"See LLCAutoSept files\"]]"
JSONlint is using the older, stricter RFC 4627 that requires the top level to be an array or object, so it won't validate a JSON string.
However, Python's json.dumps()
produces valid RFC 7159 output.
If your application requires JSONlint compliance, then by all means add a list or dictionary:
>>> print json.dumps([data])
["[for: css=a[title=\"See LLCAutoSept files\"]]"]
>>> print json.dumps({'data': data})
{"data": "[for: css=a[title=\"See LLCAutoSept files\"]]"}
JSONlint.com validates either of these as valid.
There was, for a time, quite some confusion over this, with RFC 4627, ECMA-262 and ECMA-404 and actual implementations disagreeing over what was allowed; at least RFC 7159 agrees with ECMA-404 now on this. Also see What is the minimum valid JSON?