>source

특정 개체를 제거하려는 사전이 있습니다.

{
  "authorizationQualifier": "00",
  "testIndicator": " ",
  "functionalGroups": [
    {
      "functionalIdentifierCode": "SC",
      "applicationSenderCode": "6088385400",
      "applicationReceiverCode": "3147392555",
      "transactions": [
        {
          "name": null,
          "transactionSetIdentifierCode": "832",
          "transactionSetControlNumber": "000000001",
          "implementationConventionReference": null,
          "segments": [
            {
              "BCT": {
                "BCT01": "PS",
                "BCT03": "2",
                "id": "BCT"
                     }
             }
           ]
         }
       ]
     }
   ]
}

기능 그룹 및 트랜잭션 목록을 유지하면서 개체의 "세그먼트"목록을 삭제하려고합니다.

난 노력 했어,

ediconverted = open("converted.json", "w")
with open('832.json','r') as jsonfile:
    json_content = json.load(jsonfile)
for element in json_content:
    element.pop('segments', None)
with open('converted.json', 'w') as data_file:
    json_content = json.dump(json_content, data_file)

  • 답변 # 1

    이 특정 구조의 경우 이름을 d로 지정하면 다음이 작동합니다.

    del d["functionalGroups"][0]["transactions"][0]["segments"]
    
    

  • 답변 # 2

    모든 그룹 및 트랜잭션에 대해 제거한다고 가정합니다.

    for g in data["functionalGroups"]: 
        for d in g["transactions"]: 
            d.pop("segments")
            # or, if segments is an optional key
            d.pop("segments", None)
    
    

    당신은 할 수 있습니다 del d["segments"] 아무 것도 반환하지 않기 때문에 오버 헤드가 약간 적지 만 경우에 대해 원활하게 처리 할 수있는 옵션을 제공하지 않습니다. "segments" 존재하지 않습니다 ( dict.pop ).

관련 자료

  • 이전 javascript - 이를 위해 캔버스 요소에서 너비가 400px, 높이가 200px로 필요한 이유는 무엇입니까?
  • 다음 python 3.x - 목록의 세그먼트를 결합하는 방법