파이썬에서는 JSON(JavaScript Object Notation) 데이터를 처리하기 위해 기본 내장 모듈인 json 모듈을 사용합니다. JSON은 키-값 쌍으로 데이터를 저장하는 경량 데이터 형식으로, 웹 API와 데이터 교환에서 많이 사용됩니다.
1. JSON 문자열을 파이썬 객체로 변환하기
import json
json_string = '{"name": "Alice", "age": 25, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data["name"])
결과:
{'name': 'Alice', 'age': 25, 'city': 'New York'}
Alice
json.loads는 JSON 문자열을 파이썬의 딕셔너리 형태로 변환합니다. 여기서 json_string은 문자열로 작성된 JSON 데이터이며, 이를 data로 변환하여 키 "name"의 값을 출력합니다.
2. JSON 파일을 파이썬 객체로 읽기
import json
with open("data.json", "r") as file:
data = json.load(file)
print(data)
결과:
data.json 파일의 내용이 파이썬 객체(딕셔너리 또는 리스트)로 변환되어 출력됩니다. 파일의 내용은 다음과 같이 가정합니다:
{"name": "Alice", "age": 25, "city": "New York"}
{'name': 'Alice', 'age': 25, 'city': 'New York'}
json.load는 JSON 파일의 내용을 읽어 파이썬 객체로 변환합니다. with open 구문으로 파일을 열고, 파일 핸들(file)을 전달하여 JSON 데이터를 읽어올 수 있습니다.
3. 파이썬 객체를 JSON 문자열로 변환하기
import json
data = {"name": "Alice", "age": 25, "city": "New York"}
json_string = json.dumps(data)
print(json_string)
결과:
{"name": "Alice", "age": 25, "city": "New York"}
json.dumps는 파이썬의 딕셔너리 객체를 JSON 문자열로 변환합니다. 이 코드는 data라는 딕셔너리를 JSON 형식의 문자열로 변환하여 출력합니다.
4. 파이썬 객체를 JSON 파일로 저장하기
import json
data = {"name": "Alice", "age": 25, "city": "New York"}
with open("output.json", "w") as file:
json.dump(data, file)
결과:
output.json 파일에 다음 내용이 저장됩니다:
{"name": "Alice", "age": 25, "city": "New York"}
json.dump는 파이썬 객체를 JSON 파일로 저장하는 데 사용됩니다. 이 코드는 data 객체를 output.json 파일에 저장하며, 파일은 쓰기 모드("w")로 열립니다.
5. JSON 데이터 포맷팅
import json
data = {"name": "Alice", "age": 25, "city": "New York"}
formatted_json = json.dumps(data, indent=4)
print(formatted_json)
결과:
{
"name": "Alice",
"age": 25,
"city": "New York"
}
json.dumps에 indent 옵션을 추가하면 JSON 데이터를 보기 쉽게 계층 구조로 정렬하여 출력할 수 있습니다. 이 코드는 data 객체를 JSON 문자열로 변환하면서 들여쓰기를 적용하여 가독성을 높입니다.
6. JSON 데이터의 예외 처리
import json
json_string = '{"name": "Alice", "age": 25, "city": "New York"'
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print("JSONDecodeError 발생:", e)
결과:
JSONDecodeError 발생: Expecting ',' delimiter: line 1 column 47 (char 46)
잘못된 JSON 형식을 처리할 때 json.JSONDecodeError 예외가 발생합니다. 이 코드는 닫는 중괄호가 없는 잘못된 JSON 문자열을 처리하며, 예외를 포착하여 오류 메시지를 출력합니다.
7. JSON 데이터 다루기 예제
import json
with open("users.json", "r") as file:
users = json.load(file)
filtered_users = [user for user in users if user["age"] > 30]
print(filtered_users)
users.json 파일 내용:
[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 35},
{"name": "Charlie", "age": 30}
]
결과:
[{'name': 'Bob', 'age': 35}]
이 코드는 JSON 파일에서 데이터를 읽어온 후, 특정 조건(age > 30)에 맞는 사용자만 필터링합니다. json.load로 파일 데이터를 읽고 리스트 내포를 사용하여 조건에 따라 필터링된 데이터를 추출합니다.
JSON 처리 요약
함수 설명
json.load() | JSON 파일을 읽어 파이썬 객체로 변환 |
json.loads() | JSON 문자열을 파이썬 객체로 변환 |
json.dump() | 파이썬 객체를 JSON 파일로 저장 |
json.dumps() | 파이썬 객체를 JSON 문자열로 변환 |
JSON은 데이터를 직렬화/역직렬화하는 데 필수적이며, 파이썬의 json 모듈을 사용하면 직관적이고 간편하게 JSON 데이터를 처리할 수 있습니다. JSON 데이터의 변환, 저장, 읽기 작업은 웹 개발 및 데이터 처리에서 매우 유용합니다.
'파이썬 Python' 카테고리의 다른 글
파이썬 Python 문자열 사용법 (1) | 2024.11.28 |
---|---|
파이썬 정수(int) 함수 사용법 (1) | 2024.11.28 |
파이썬 Python 집합(Set) 사용법 (1) | 2024.11.27 |
파이썬 Python 튜플(Tuple) 사용법 (0) | 2024.11.27 |
파이썬 Python 날짜와 시간 다루기 (0) | 2024.11.26 |
파이썬 Python 파일 경로 다루기 (0) | 2024.11.23 |
파이썬 Python 제너레이터와 이터레이터 사용하기 (0) | 2024.11.23 |
파이썬 Python 데코레이터 활용하기 (0) | 2024.11.21 |