, , , '{"data1": "}{"}{"data2":"foo"}'.
, /, JSON, '{' '}' (, '[' ']'), :
import json
with open('input.txt') as inp:
s = inp.read().strip()
jsons = []
start, end = s.find('{'), s.find('}')
while True:
try:
jsons.append(json.loads(s[start:end + 1]))
except ValueError:
end = end + 1 + s[end + 1:].find('}')
else:
s = s[end + 1:]
if not s:
break
start, end = s.find('{'), s.find('}')
for x in jsons:
print(x)
:
$ cat input.txt
{"data1": {"data1_inside": "bla{bl\"a"}}{"data1": {"data1_inside": "blabla["}}{"data1": {"data1_inside": "bla{bla"}}{"data1": {"data1_inside": "bla["}}
$ python json_linereader.py
{u'data1': {u'data1_inside': u'bla{bl"a'}}
{u'data1': {u'data1_inside': u'blabla['}}
{u'data1': {u'data1_inside': u'bla{bla'}}
{u'data1': {u'data1_inside': u'bla['}}
s = '{"data1": "}{"}{"data2":"foo"}'
{'data1': '}{'}
{'data2': 'foo'}
, .