Python에서 JSON 파일을 읽고 활용하는 방법
Python은 표준 라이브러리에 json 모듈을 포함하고 있어, 별도의 설치 없이 손쉽게 JSON 데이터를 다룰 수 있습니다. 이 모듈은 JSON 문자열이나 파일을 파싱하여 Python의 딕셔너리(dict) 객체로 변환해 주며, 변환된 데이터는 일반 딕셔너리처럼 자유롭게 접근하고 조작할 수 있습니다.
예를 들어, 아래와 같은 내용의 JSON 파일(data.json)이 있다고 가정해 보겠습니다.
{
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}JSON 파일 로드하기
Python 프로그램에서 위 JSON 파일을 불러오려면 json.load() 함수를 사용합니다. 파일을 열고 데이터를 로드한 뒤에는 반드시 파일을 닫아주는 것이 좋습니다.
import json
f = open('data.json')
data = json.load(f)
f.close()이제 data 변수는 일반적인 딕셔너리처럼 사용할 수 있습니다. 예를 들어 with 문을 활용하면 파일을 자동으로 닫을 수 있어 더욱 안전한 코드 작성이 가능합니다.
import json
with open('data.json', 'r') as f:
data = json.load(f)키와 값 순회하기
로드된 데이터는 일반 딕셔너리와 동일하게 다룰 수 있으므로, items() 메서드를 통해 키(key)와 값(value)을 반복문으로 순회할 수 있습니다.
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 파싱하기
파일이 아닌 문자열 형태의 JSON을 다뤄야 하는 경우에는 json.loads() 함수를 사용하면 됩니다. 예를 들어 API 응답 등으로 받은 JSON 문자열을 바로 파싱할 수 있습니다.
import json
json_string = '{"name": "홍길동", "age": 30}'
data = json.loads(json_string)
print(data["name"]) # 홍길동반대로 Python 객체를 JSON 문자열로 변환할 때는 json.dumps(), 파일에 저장할 때는 json.dump()를 사용하면 됩니다. 이처럼 json 모듈만 잘 활용하면 다양한 형태의 JSON 데이터를 효율적으로 처리할 수 있습니다.