我正在解析包含 json 对象的文件。问题是某些文件在一行中有多个对象。例如:
{"data1": {"data1_inside": "bla{bl\"a"}}{"data1": {"data1_inside": "blabla["}}{"data1": {"data1_inside": "bla{bla"}}{"data1": {"data1_inside": "bla["}}
Run Code Online (Sandbox Code Playgroud)
我制作了一个函数,当没有左括号时尝试解析子字符串,但值中可能有大括号。我尝试通过检查引号的开头和结尾来跳过值,但也有带有转义引号的值。关于如何处理这个问题的任何想法?
我的尝试:
def get_lines(data):
lines = []
open_brackets = 0
start = 0
is_comment = False
for index, c in enumerate(data):
if c == '"':
is_comment = not is_comment
elif not is_comment:
if c == '{':
if not open_brackets:
start = index
open_brackets += 1
if c == '}':
open_brackets -= 1
if not open_brackets:
lines.append(data[start: index+1])
return lines
Run Code Online (Sandbox Code Playgroud)