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

Python에서 JSON 입력으로 딕셔너리 만드는 방법

Python에서는 내장 모듈인 json을 사용해 JSON 파일을 간단하게 파싱할 수 있습니다. json 모듈은 JSON 데이터를 읽어 들여 자동으로 딕셔너리(dict) 객체로 변환해 주기 때문에, 변환된 데이터는 일반적인 파이썬 딕셔너리와 똑같은 방식으로 접근하고 조작할 수 있습니다.

예제 JSON 파일

예를 들어 아래와 같은 내용의 data.json 파일이 있다고 가정해 보겠습니다.

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

JSON 파일을 파이썬에서 불러오기

json.load() 함수를 사용하면 파일에 저장된 JSON 데이터를 그대로 딕셔너리로 읽어 올 수 있습니다.

import json

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

딕셔너리처럼 데이터 다루기

이제 data 변수는 일반 딕셔너리처럼 동작합니다. items() 메서드를 사용하면 키(key)와 값(value)을 순회하면서 손쉽게 출력할 수 있습니다.

# 이제 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()'}]}

더 안전하게 파일 다루기: with문 활용

with 문을 사용하면 파일을 자동으로 닫아 주기 때문에 f.close() 호출을 잊어버릴 걱정 없이 더 깔끔하고 안전한 코드를 작성할 수 있습니다.

import json

with open('data.json') as f:
    data = json.load(f)

이처럼 json 모듈을 활용하면 복잡한 중첩 구조의 JSON 데이터도 몇 줄의 코드만으로 파이썬 딕셔너리와 리스트 형태로 변환하여 자유롭게 다룰 수 있습니다.