【发布时间】:2020-06-06 23:24:51
【问题描述】:
我有一个 JSON 文件的前半部分。找出要附加的“缺失”括号(} 和 ] 的混合)以获得有效 JSON 的最简单方法是什么?
【问题讨论】:
标签: json stack curly-braces
我有一个 JSON 文件的前半部分。找出要附加的“缺失”括号(} 和 ] 的混合)以获得有效 JSON 的最简单方法是什么?
【问题讨论】:
标签: json stack curly-braces
这不是最优雅的解决方案,但我的 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)
# >>> ['{', '{', '[', '{', '[']
【讨论】: