반응형

Python에서 JSON(JSON(JavaScript Object Notation))은 데이터를 구조적으로 표현하기 위한 포맷으로, 웹 애플리케이션에서 자주 사용됩니다. Python에서 JSON을 처리하는 방법은 json 모듈을 사용하여 쉽게 다룰 수 있습니다. 이 모듈을 통해 JSON 데이터를 파싱하거나 직렬화(serialize)할 수 있습니다.

 

다음은 Python을 활용한 JSON 처리 방법 3가지와 예시입니다:

1. JSON 문자열을 Python 객체로 변환 (JSON 파싱)

json.loads() 함수를 사용하여 JSON 형식의 문자열을 Python 객체로 변환할 수 있습니다. 이 함수는 JSON 문자열을 파싱하여 Python의 데이터 타입(딕셔너리, 리스트 등)으로 변환합니다.

import json

# JSON 형식의 문자열
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'

# JSON 문자열을 Python 객체로 변환
data = json.loads(json_string)

# 변환된 데이터 출력
print(data)  # {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(type(data))  # <class 'dict'>

 

2. Python 객체를 JSON 문자열로 변환 (직렬화)

json.dumps() 함수를 사용하여 Python 객체를 JSON 형식의 문자열로 변환할 수 있습니다. 이 함수는 Python 객체(예: 딕셔너리, 리스트 등)를 JSON 문자열로 직렬화합니다.

import json

# Python 객체 (딕셔너리)
data = {
    "name": "Bob",
    "age": 25,
    "city": "San Francisco"
}

# Python 객체를 JSON 문자열로 변환
json_string = json.dumps(data, indent=4)

# JSON 문자열 출력
print(json_string)
# 출력
{
    "name": "Bob",
    "age": 25,
    "city": "San Francisco"
}

indent 인자를 사용하여 출력 형식을 더 읽기 쉽게 할 수 있습니다.

 

3. JSON 파일 읽기 및 쓰기

Python에서 json.load()와 json.dump()를 사용하여 JSON 파일을 읽고 쓸 수 있습니다.

 

예시 1: JSON 파일 쓰기

import json

# Python 객체 (딕셔너리)
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Los Angeles"
}

# JSON 파일에 데이터 쓰기
with open('data.json', 'w') as file:
    json.dump(data, file, indent=4)

 

예시 2: JSON 파일 읽기

import json

# JSON 파일에서 데이터 읽기
with open('data.json', 'r') as file:
    data = json.load(file)

# 읽은 데이터 출력
print(data)
# 출력
{'name': 'Charlie', 'age': 35, 'city': 'Los Angeles'}

 

요약

  1. json.loads() : JSON 문자열을 Python 객체로 변환.
  2. json.dumps() : Python 객체를 JSON 문자열로 변환.
  3. json.load() : JSON 파일을 읽어 Python 객체로 변환.
  4. json.dump() : Python 객체를 JSON 파일에 저장.

이렇게 json 모듈을 사용하면 JSON 데이터를 쉽고 효율적으로 처리할 수 있습니다.

반응형

'프로그래밍 > [ Python ]' 카테고리의 다른 글

[Python] 예외처리 try, except  (0) 2024.11.14
[Python] map  (0) 2024.11.13
[Python] List Comprehension  (0) 2024.11.12
[Python] Files (파일 관련)  (1) 2024.02.26
[python] pass, continue, break 활용법  (0) 2021.06.20

+ Recent posts