我有一个包含数十万行的 JSON 响应,所有这些都从字典 python 解析并使用 json.load 转换为 JSON现在获取无效响应的 JSON 响应,因此解决方法如下回复{ "ComplianceType": "", "Details": { "InstalledTime": "", "PatchBaselineId": "", "PatchState": "" }, "ExecutionSummary": { "ExecutionId": "", "ExecutionTime": "", "ExecutionType": "" }, "Id": "", "ResourceId": "", "ResourceType": "", "Severity": "", "Status": "", "Title": ""}{ "ComplianceType": "", "Details": { "InstalledTime": "", "PatchBaselineId": "", "PatchState": "" }, "ExecutionSummary": { "ExecutionId": "", "ExecutionTime": "", "ExecutionType": "" }, "Id": "", "ResourceId": "", "ResourceType": "", "Severity": "", "Status": "", "Title": ""}变通使其有效[{ "ComplianceType": "", "Details": { "InstalledTime": "", "PatchBaselineId": "", "PatchState": "" }, "ExecutionSummary": { "ExecutionId": "", "ExecutionTime": "", "ExecutionType": "" }, "Id": "", "ResourceId": "", "ResourceType": "", "Severity": "", "Status": "", "Title": ""},{ "ComplianceType": "", "Details": { "InstalledTime": "", "PatchBaselineId": "", "PatchState": "" }, "ExecutionSummary": { "ExecutionId": "", "ExecutionTime": "", "ExecutionType": "" }, "Id": "", "ResourceId": "", "ResourceType": "", "Severity": "", "Status": "", "Title": ""}]这些我需要通过程序完成,当我尝试使用 sed shell --> #sed -i 's#}#},#' test.json <-- 。此 shell 命令替换 }, in }, 并返回为 },,
1 回答
慕森卡
TA贡献1806条经验 获得超8个赞
根据您的样本输入,这可能对您有用:
$ cat input.json \ | grep -v -e '^[[:space:]]*$' \ | sed -e '1s/^/[/' \ -e '$s/$/]/' \ -e 's/^}$/},/'
grep消除任何空行(如果存在)。这很重要,因为下面sed需要对最后一个非空行进行操作。第一个
sed表达式将添加[到第一行的开头第二个
sed表达式将添加]到最后一行的末尾最后的表达式在任何单独一行
sed的后面添加一个逗号}
通过在第三个之前应用第二sed个,最后一个变得}不再单独在一条线上。}]}
添加回答
举报
0/150
提交
取消
