[Python] json 형식 데이터에서 특정 데이터들 추출

조회수 2818회

json 형식 데이터를 받았을때 원하는 값을 추출하려하는데 어려움이 있어서 질문드립니다. : )

예시 :

[
    {
        "date": "2020-12-26",
        "year": 2020,
        "quarter": 1,
        "class": {
            "name": [
                {
                    "code": "영수",
                    "values": 15
                },
                {
                    "code": "희민",
                    "values": 16
                }
            ]
        }
    }
]

해당 데이터에서 code 값이 "영수"이면 "영수"values를 추출하고싶습니다. 어떤식으로 할 수 있는지 질문드립니다.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    걍 한꺼풀씩 보면서 하면 될텐데, 어떤 점이 궁금한 건지 잘 모르겠네요.

    t = """
    [
        {
            "date": "2020-12-26",
            "year": 2020,
            "quarter": 1,
            "class": {
                "name": [
                    {
                        "code": "영수",
                        "values": 15
                    },
                    {
                        "code": "희민",
                        "values": 16
                    }
                ]
            }
        }
    ]
    """
    import json
    
    d = json.loads(t)
    print(d)
    print(d[0])
    print(d[0]["class"]["name"])
    print([ cv for cv in d[0]["class"]["name"] if cv["code"] == "영수" ])
    
    t = """
    [
        {
            "date": "2020-12-26",
            "year": 2020,
            "quarter": 1,
            "class": {
                "name": [
                    {
                        "code": "영수",
                        "values": 15
                    },
                    {
                        "code": "희민",
                        "values": 16
                    }
                ]
            }
        },
        {
            "date": "2020-12-26",
            "year": 2020,
            "quarter": 1,
            "class": {
                "name": [
                    {
                        "code": "영수",
                        "values": 15
                    },
                    {
                        "code": "희민",
                        "values": 16
                    }
                ]
            }
        }
    ]
    """
    import json
    
    d = json.loads(t)
    print(d)
    print([e for e in d])
    print([ e["class"]["name"] for e in d])
    print([ cv for e in d for cv in e["class"]["name"] if cv["code"] == "영수" ])
    
    • 첫번째 인덱스 데이터로 여러개가 있어서 어떻게 추출해야하나 고민중에 있습니다. 인덱스([0])으로 접근하진 못할것같습니다. 윤우섭 2021.3.15 17:00
    • 감사합니다 :) 윤우섭 2021.3.15 19:21

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)