为了账号安全,请及时绑定邮箱和手机立即绑定

Python需要用(大括号和逗号)替换大括号

Python需要用(大括号和逗号)替换大括号

慕的地8271018 2022-12-06 15:01:32
我有一个包含数十万行的 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个,最后一个变得}不再单独在一条线上。}]}


查看完整回答
反对 回复 2022-12-06
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号