我有一个JSON文件的前半部分。找出为了获得有效JSON而要附加的“缺失”括号(}
和]
的混合物)的最简单方法是什么?
不是最优雅的解决方案,但是我的JSON格式正确,除了带逗号的括号外,所有方括号都位于行尾。我逐行读取文件,去掉逗号,然后从堆栈中推入/弹出,留下需要关闭的左括号。
stack = []
with open("incomplete.json") as f:
for line in f:
try:
line = line.strip()
if line and line.endswith(","):
line = line[:-1]
c = line[-1]
if c in ("{","["):
stack.append(c)
elif c in ("}", "]"):
stack.pop()
except Exception as e:
pass
print(stack)
# >>> ['{', '{', '[', '{', '[']