Python으로 JSON 데이터 다루기 완전 가이드 | 읽기부터 쓰기까지 철저히 설명

1. JSON이란?

JSON 개요

JSON(JavaScript Object Notation)은 가볍고 데이터 교환에 매우 효율적인 포맷입니다. 주로 웹 애플리케이션과 서버 간 데이터 교환에 사용됩니다. JavaScript를 기반으로 한 형식이지만, 거의 모든 프로그래밍 언어에서 지원됩니다. 특히 API를 이용한 데이터 조회 및 전송에서 JSON은 매우 중요한 역할을 합니다.

JSON 구조

JSON은 키와 값의 쌍으로 구성되며, 데이터는 중괄호 {} 로 둘러싸여 있습니다. 간단한 예로, 다음과 같은 데이터를 상상해 보세요.
{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Physics", "Chemistry"]
}
이 구조는 리스트와 중첩된 객체도 포함할 수 있어 매우 유연합니다.

2. Python으로 JSON 파일을 읽는 기본 방법

Python의 json 라이브러리 도입

Python에서는 표준 라이브러리인 json을 사용하여 JSON 파일을 쉽게 다룰 수 있습니다. 추가 설치가 필요 없으며, 파일 읽기 및 쓰기에 관한 기본 기능이 처음부터 제공됩니다.

JSON 파일 읽기 방법

json.load() 함수를 사용하여 파일에서 데이터를 읽는 방법을 설명합니다. 다음 예시는 파일에서 JSON을 읽어 데이터를 딕셔너리로 다루는 간단한 코드입니다.
import json

with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

print(data)
年収訴求

3. Python에서 JSON 문자열을 읽는 방법

json.loads() 함수 사용

문자열로 제공된 JSON 데이터를 Python 사전으로 변환하려면 json.loads() 함수를 사용합니다. 이는 API 응답 등에서 JSON 문자열을 처리할 때 자주 사용됩니다.
import json

json_string = '{"name": "Alice", "age": 25, "city": "Tokyo"}'
data = json.loads(json_string)

print(data)
이처럼 문자열 형태의 JSON 데이터를 쉽게 사전으로 변환할 수 있습니다.

4. JSON 파일 읽기 시 주의점 및 오류 대책

자주 발생하는 오류와 대처법

JSON 파일을 읽을 때 가장 일반적인 오류 중 하나는JSONDecodeError입니다. 이 오류는 파일이 올바른 JSON 형식이 아닐 경우 발생합니다. 적절한 오류 처리를 수행하고 오류 상세 정보를 확인하는 것이 중요합니다.
import json

try:
    with open('data.json', 'r', encoding='utf-8') as f:
        data = json.load(f)
except json.JSONDecodeError as e:
    print(f"JSON 읽기 오류: {e}")

인코딩 문제

일본어를 포함하는 JSON 파일에서는 문자 인코딩에 주의해야 합니다.encoding='utf-8'을 지정함으로써 문자 깨짐을 방지할 수 있습니다.

5. 대규모 JSON 데이터의 효율적인 처리

메모리 효율을 고려한 데이터 처리

거대한 JSON 파일을 메모리에 한 번에 읽어들이면 메모리 부족에 빠질 가능성이 있습니다. 이를 피하기 위해서는 ijson와 같은 스트리밍 라이브러리를 사용하는 것을 권장합니다.
import ijson

with open('large_file.json', 'r', encoding='utf-8') as f:
    for item in ijson.items(f, 'item'):
        print(item)
ijson를 사용하면 대규모 데이터를 효율적으로 처리할 수 있습니다.

6. JSON 데이터를 Python 사전으로 변환한 후 활용 방법

기본적인 사전 조작

JSON을 사전형으로 변환함으로써 데이터 조작이 매우 쉬워집니다. 예를 들어, 특정 키에 대응하는 값을 가져오거나 데이터를 변경할 수 있습니다.
# 사전형 데이터의 조작 예시
print(data['name'])  # 'Alice'가 표시됩니다
data['age'] = 26  # 값 업데이트
data['email'] = 'alice@example.com'  # 새로운 키와 값을 추가

7. Python에서 JSON 쓰기 방법도 설명

JSON 파일에 쓰기

Python에서 다룬 딕셔너리형 데이터를 JSON 형식으로 파일에 기록하려면 json.dump() 함수를 사용합니다. 이를 통해 업데이트된 데이터를 저장할 수 있습니다.
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=4, ensure_ascii=False)
indent=4 옵션으로 출력을 정렬하고, ensure_ascii=False 로 일본어를 그대로 저장합니다.
年収訴求