[英]Python Need to replace curly bracket with (curly bracket and comma)
我有一個包含數十萬行的 JSON 響應,並且全部從字典 python 解析並使用 Z46485DEEC76ECDF25FCA6 轉換為 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 },並返回為 },,
[{
"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": ""
},
]
請提供有效的解決方法 shell 或 python
根據您的示例輸入,這可能對您有用:
$ cat input.json \
| grep -v -e '^[[:space:]]*$' \
| sed -e '1s/^/[/' \
-e '$s/$/]/' \
-e 's/^}$/},/'
grep
消除了任何空白行(如果存在)。 這很重要,因為下面的sed
需要在最后一個非空行上運行。sed
表達式將[
添加到第一行的開頭sed
表達式將]
添加到最后一行的末尾sed
表達式在單獨一行的任何}
之后添加一個逗號通過在第三個之前應用第二個sed
,最后一個}
變為}]
,因此}
不再單獨一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.