Please Enable JavaScript!
Gon[ Enable JavaScript ]

파이썬(Python) JSON 처리

파이썬 Python
반응형

파이썬에서는 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 데이터의 변환, 저장, 읽기 작업은 웹 개발 및 데이터 처리에서 매우 유용합니다.

반응형
Posted by 녹두장군1
,