티스토리 뷰
목차
프로그래밍을 하다 보면 JSON은 빼놓을 수 없는 데이터 형식입니다. 개인적으로도 웹 개발을 하면서 수많은 API를 연동했고, 그 과정에서 JSON 데이터를 다룰 일이 많았습니다. 초보 개발자라면 JSON이 처음엔 다소 복잡하게 느껴질 수 있습니다. 하지만 Python과 함께하면 JSON을 쉽게 파싱하고 가공할 수 있습니다. 이번 글에서는 JSON의 기본 개념부터 Python으로 JSON을 다루는 방법까지, 실습을 통해 차근차근 알아보겠습니다.
1. JSON이란 무엇인가?
JSON(JavaScript Object Notation)은 데이터를 저장하고 전송하는 데 널리 사용되는 경량 데이터 형식입니다. 주로 웹 애플리케이션에서 서버와 클라이언트 간에 데이터를 교환하는 데 사용됩니다. JSON은 사람이 읽고 쓰기 쉽고, 기계가 해석하고 생성하기에도 간단한 형식을 가지고 있습니다.
JSON의 특징
- 경량 데이터 형식: JSON은 텍스트 기반의 데이터 형식으로, 데이터 구조를 쉽게 나타낼 수 있습니다.
- 키-값 쌍: JSON은 { "키": "값" } 형태의 키-값 쌍으로 구성됩니다. 키는 항상 문자열이고, 값은 문자열, 숫자, 객체, 배열, true, false, null 등이 될 수 있습니다.
- 읽기 쉬운 구조: JSON은 중괄호({})와 대괄호([])로 객체와 배열을 표현합니다. 이는 데이터를 계층적이고 논리적으로 구조화할 수 있게 해줍니다.
예시: JSON 데이터 구조
{
"name": "John Doe",
"age": 30,
"is_student": false,
"address": {
"street": "123 Main St",
"city": "New York"
},
"courses": ["Math", "Science", "Art"]
}
위 JSON 예시에서 name, age, is_student는 기본 키-값 쌍입니다. address는 객체이며, courses는 배열로 구성되어 있습니다.
2. Python에서 JSON 데이터 다루기: 기본 개념과 json 모듈 소개
Python에서는 JSON 데이터를 다루기 위해 json 모듈을 사용합니다. 이 모듈은 JSON 형식의 데이터를 Python의 데이터 구조로 변환하거나, 반대로 Python 데이터를 JSON 형식으로 변환하는 기능을 제공합니다.
Python에서 JSON 모듈 사용하기
Python의 json 모듈을 사용하면 다음과 같은 작업을 할 수 있습니다:
- JSON 문자열을 Python 객체로 변환: JSON 데이터를 Python의 딕셔너리나 리스트로 변환하여 데이터를 쉽게 다룰 수 있습니다.
- Python 객체를 JSON 문자열로 변환: Python의 데이터 구조를 JSON 형식으로 변환하여 저장하거나 전송할 수 있습니다.
예시: JSON 문자열을 Python 객체로 변환
import json
# JSON 문자열
json_string = '{"name": "Alice", "age": 25, "is_student": true}'
# JSON 문자열을 Python 딕셔너리로 변환
data = json.loads(json_string)
print(data)
print(data["name"]) # 출력: Alice
print(data["age"]) # 출력: 25
- 설명: json.loads() 함수는 JSON 문자열을 Python의 딕셔너리로 변환합니다. 이제 데이터는 딕셔너리처럼 접근할 수 있습니다.
3. Python에서 JSON 파일 읽기 및 쓰기
Python을 사용하면 JSON 파일을 읽거나 저장하는 작업도 매우 간단합니다. 웹 애플리케이션이나 데이터 분석 작업에서 JSON 파일을 읽어와서 데이터를 처리하거나, 반대로 JSON 파일로 데이터를 저장하는 경우가 많습니다.
예제 1: JSON 파일 읽기
import json
# JSON 파일 읽기
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
- 설명: json.load() 함수는 파일로부터 JSON 데이터를 읽어와 Python 객체로 변환합니다. 이 과정에서 JSON 파일이 딕셔너리로 변환되므로 데이터를 쉽게 접근할 수 있습니다.
예제 2: JSON 파일에 쓰기
import json
# Python 데이터
data = {
"name": "Bob",
"age": 22,
"courses": ["Math", "English", "History"]
}
# JSON 파일에 쓰기
with open('output.json', 'w') as file:
json.dump(data, file, indent=4)
- 설명: json.dump() 함수는 Python 객체를 JSON 형식으로 파일에 저장합니다. indent 파라미터를 사용하여 파일을 읽기 쉽게 정렬할 수 있습니다.
4. Python JSON 데이터 변환과 활용: 실습 예제
Python에서는 JSON 데이터를 Python의 딕셔너리나 리스트와 상호 변환하여 다양한 처리를 할 수 있습니다. 이번 실습에서는 JSON 데이터를 활용하여 데이터를 변환하고 가공하는 방법을 배워보겠습니다.
실습 예제 1: JSON 데이터에서 특정 정보 추출하기
import json
json_data = '''
{
"employees": [
{"name": "John", "age": 28, "department": "HR"},
{"name": "Doe", "age": 32, "department": "Engineering"},
{"name": "Jane", "age": 24, "department": "Marketing"}
]
}
'''
# JSON 문자열을 Python 객체로 변환
data = json.loads(json_data)
# 특정 부서에 속한 직원 이름 출력하기
for employee in data["employees"]:
if employee["department"] == "Engineering":
print(employee["name"])
- 설명: JSON 데이터를 파싱하여 특정 조건을 만족하는 데이터를 출력합니다. 위 예제에서는 "Engineering" 부서에 속한 직원의 이름만 출력합니다.
실습 예제 2: Python 데이터를 JSON 문자열로 변환하기
import json
# Python 데이터
person = {
"name": "Charlie",
"age": 29,
"hobbies": ["Reading", "Hiking", "Coding"]
}
# Python 객체를 JSON 문자열로 변환
json_string = json.dumps(person, indent=2)
print(json_string)
- 설명: json.dumps() 함수는 Python 객체를 JSON 문자열로 변환합니다. 이때 indent 파라미터로 출력 형식을 지정할 수 있습니다.
5. JSON 데이터의 유효성 검사와 오류 처리
JSON 데이터를 다루다 보면, 유효하지 않은 JSON 형식이나 데이터 누락으로 인해 오류가 발생할 수 있습니다. Python에서는 예외 처리(try-except)를 통해 JSON 데이터의 유효성을 검사하고 오류를 처리할 수 있습니다.
예제: JSON 데이터 유효성 검사
import json
invalid_json = '{"name": "Eve", "age": 25, "city": "London"' # 마지막 중괄호 누락
try:
data = json.loads(invalid_json)
except json.JSONDecodeError as e:
print("유효하지 않은 JSON 형식입니다:", e)
- 설명: JSON 문자열이 유효하지 않으면 json.JSONDecodeError가 발생합니다. try-except 블록을 사용하여 오류를 처리하고 유효하지 않은 JSON 형식을 검출할 수 있습니다.
요약
Python에서 JSON을 다루는 방법은 매우 직관적이며, Python의 json 모듈을 사용하면 쉽게 데이터를 파싱하고 저장할 수 있습니다. 이번 글에서는 JSON의 기본 개념부터 Python에서 JSON 데이터를 다루는 방법까지 실습을 통해 설명했습니다. Python의 json 모듈을 활용하면 웹 애플리케이션, 데이터 분석, API 연동 등에서 효율적으로 데이터를 처리할 수 있습니다. JSON과 Python을 익히고 나면, 다양한 데이터 소스와 자유롭게 연동할 수 있는 자신감을 가질 수 있을 것입니다.
디스크립션: Python으로 JSON 데이터를 쉽게 다루는 방법을 배워보세요. JSON의 기본 개념부터 Python으로 JSON 파일을 읽고 쓰는 방법, 예외 처리까지 실습을 통해 익힐 수 있습니다.