Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 JSON 데이터를 반복 처리하는 방법 (예제 코드 포함)

Python에서는 기본 제공되는 json 모듈을 사용하여 JSON 파일을 간편하게 파싱할 수 있습니다. 이 모듈은 JSON 데이터를 파싱한 뒤 Python의 딕셔너리(dict) 형태로 변환해 주기 때문에, 이후에는 일반적인 딕셔너리를 다루는 것과 동일한 방식으로 값에 접근할 수 있습니다.

예를 들어, 다음과 같은 내용을 담고 있는 JSON 파일이 있다고 가정해 보겠습니다.

{
    "id": "file",
    "value": "File",
    "popup": {
        "menuitem": [
        {"value": "New", "onclick": "CreateNewDoc()"},
        {"value": "Open", "onclick": "OpenDoc()"},
        {"value": "Close", "onclick": "CloseDoc()"}
        ]
    }
}

JSON 파일 로드 후 키-값 반복하기

위 JSON 파일을 Python 프로그램에서 불러온 뒤, items() 메서드를 활용하면 모든 키(key)와 값(value)을 순회하며 확인할 수 있습니다.

import json
f = open('data.json')
data = json.load(f)
f.close()

# 이제 data를 일반 딕셔너리처럼 사용할 수 있습니다:
for (k, v) in data.items():
    print("Key: " + k)
    print("Value: " + str(v))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Key: id
Value: file
Key: value
Value: File
Key: popup
Value: {'menuitem': [{'value': 'New', 'onclick': 'CreateNewDoc()'}, {'value': 'Open', 'onclick': 'OpenDoc()'}, {'value': 'Close', 'onclick': 'CloseDoc()'}]}

추가 팁: 중첩된 JSON 구조 탐색하기

위 예시에서 볼 수 있듯이, 값이 리스트나 딕셔너리인 경우 문자열로 그대로 출력됩니다. 중첩된 구조까지 깊이 있게 탐색하려면 재귀 함수를 활용하는 것이 좋습니다.

def print_json(data, indent=0):
    for k, v in data.items():
        print('  ' * indent + f"Key: {k}")
        if isinstance(v, dict):
            print_json(v, indent + 1)
        elif isinstance(v, list):
            for item in v:
                if isinstance(item, dict):
                    print_json(item, indent + 1)
                else:
                    print('  ' * (indent + 1) + f"Value: {item}")
        else:
            print('  ' * indent + f"Value: {v}")

print_json(data)

이렇게 하면 중첩된 JSON 구조의 모든 요소를 계층적으로 출력할 수 있어, 복잡한 API 응답이나 설정 파일을 분석할 때 특히 유용합니다.