自动添加括号以完成JSON文件

问题描述 投票:0回答:1

我有一个JSON文件的前半部分。找出为了获得有效JSON而要附加的“缺失”括号(}]的混合物)的最简单方法是什么?

json stack curly-braces
1个回答
0
投票

不是最优雅的解决方案,但是我的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)
# >>> ['{', '{', '[', '{', '[']
© www.soinside.com 2019 - 2024. All rights reserved.