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와 같은 예외를 발생시킵니다. tryexcept 블록을 사용하여 이러한 오류를 우아하게 처리합니다.

# 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 데이터를 효율적으로 처리할 수 있습니다.