Python에서 JSON 데이터 작업하기
JSON(JavaScript Object Notation)은 서버와 클라이언트 간의 데이터 교환에 사용되는 가벼운 데이터 형식입니다. 일반적으로 웹 애플리케이션에서 데이터를 보내고 받는 데 사용됩니다. Python은 JSON 데이터로 작업하기 쉬운 json
이라는 내장 모듈을 제공합니다. 이 문서에서는 JSON 객체를 읽고, 쓰고, 조작하는 것을 포함하여 Python에서 JSON 데이터로 작업하는 기본 사항을 안내합니다.
JSON이란 무엇인가요?
JSON은 사람과 기계 모두가 읽고 쓰기 쉬운 텍스트 기반 포맷입니다. Python 사전과 비슷한 키-값 쌍으로 구성되어 있습니다. 일반적인 JSON 객체는 다음과 같습니다.
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
JSON 모듈 가져오기
json
모듈은 Python의 표준 라이브러리에 포함되어 있으므로 아무것도 설치할 필요가 없습니다. 스크립트 시작 부분에서 가져오기만 하면 됩니다.
import json
JSON 데이터 읽기
문자열이나 파일에서 JSON 데이터를 읽을 수 있습니다. json.loads()
메서드는 문자열에서 JSON 데이터를 구문 분석하는 데 사용되고, json.load()
는 파일에서 JSON 데이터를 읽는 데 사용됩니다.
문자열에서 JSON 읽기
문자열에서 JSON을 읽으려면 json.loads()
메서드를 사용합니다. 이 메서드는 JSON 문자열을 Python 사전으로 변환합니다.
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
파일에서 JSON 읽기
파일에서 JSON 데이터를 읽으려면 json.load()
메서드를 사용합니다. 이 메서드는 파일의 내용을 읽고 Python 사전으로 변환합니다.
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
JSON 데이터 쓰기
JSON 데이터를 문자열이나 파일에 쓸 수 있습니다. json.dumps()
메서드는 Python 객체를 JSON 문자열로 변환하는 데 사용되고, json.dump()
는 JSON 데이터를 파일에 쓰는 데 사용됩니다.
JSON을 문자열로 쓰기
JSON을 문자열로 작성하려면 json.dumps()
메서드를 사용합니다. 이 메서드는 Python 사전을 JSON 문자열로 변환합니다.
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
JSON을 파일에 쓰기
JSON 데이터를 파일에 쓰려면 json.dump()
메서드를 사용합니다. 이 메서드는 Python 객체를 가져와 JSON 형식으로 파일에 씁니다.
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
JSON 데이터 예쁘게 인쇄하기
json.dumps()
메서드에는 JSON 데이터를 더 잘 읽을 수 있도록 포맷할 수 있는 여러 매개변수가 있습니다. indent
매개변수는 들여쓰기에 사용할 공백 수를 지정하는 반면, sort_keys
매개변수는 출력에서 키를 정렬합니다.
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
JSON과 Python 데이터 유형 간 변환
Python의 json
모듈은 다양한 데이터 유형을 처리하고 JSON과 Python 간에 변환할 수 있습니다. 다음은 간단한 참조입니다.
dict
(Python)에서object
(JSON)로list
(Python)에서array
(JSON)로str
(Python)에서string
(JSON)로int
,float
(Python)에서number
(JSON)로True
,False
(Python)에서true
,false
(JSON)로None
(Python)에서null
(JSON)로
JSON 오류 처리
JSON으로 작업하는 동안 잘못된 형식이나 예상치 못한 데이터로 인해 오류가 발생할 수 있습니다. json
모듈은 이러한 문제가 발생하면 JSONDecodeError
와 같은 예외를 발생시킵니다. try
및 except
블록을 사용하여 이러한 오류를 우아하게 처리합니다.
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
결론
JSON 데이터 작업은 Python 개발자, 특히 웹 개발 및 데이터 과학 분야의 개발자에게 기본적인 기술입니다. json
모듈은 JSON 데이터를 읽고, 쓰고, 조작하는 데 사용하기 쉬운 방법을 제공합니다. 이러한 기술을 숙지하면 Python 애플리케이션에서 JSON 데이터를 효율적으로 처리할 수 있습니다.