Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 환경의 Python 함수에서 JSON 객체를 반환하는 방법

JSON(JavaScript Object Notation)은 특정 데이터를 딕셔너리(사전) 형태로 저장하는 파일 형식입니다. JSON 파일에서 얻은 데이터는 다른 프로그래밍 언어에서도 다양한 목적으로 손쉽게 재활용할 수 있어, 시스템 간 데이터 교환에 널리 사용됩니다.

Python은 JSON 데이터를 처리하는 애플리케이션을 개발할 수 있도록 풍부한 라이브러리를 제공합니다. JSON을 다루기 위해서는 먼저 Python 표준 라이브러리에서 json 패키지를 임포트해야 합니다.

이 글에서는 JSON 객체를 반환하는 Python 함수를 직접 만들어 보겠습니다. json 모듈은 Python 기본 패키지에 포함되어 있어 별도 설치 없이 사용할 수 있으며, 만약 환경에 없다면 "pip install json" 명령어로 간단히 설치할 수 있습니다.

예제에서는 키-값(key-value) 쌍으로 구성된 데이터를 담은 Python 함수를 작성하고, 이를 바탕으로 딕셔너리를 생성합니다. 완성된 딕셔너리를 json.dumps(dictionary) 메서드에 인자로 전달하면, 해당 함수는 JSON 객체(문자열)를 반환하게 됩니다.

json.dumps()와 json.dump()의 차이

두 메서드는 비슷하지만 용도가 다릅니다. json.dumps()는 딕셔너리를 JSON 문자열로 변환하여 반환하므로 함수의 리턴값으로 적합하고, json.dump()는 JSON 데이터를 파일 객체에 직접 쓰기 위해 사용됩니다. 이번 예제처럼 값을 반환하려면 dumps()를 사용해야 합니다.

예제 코드

# JSON 라이브러리 임포트
import json

# 함수 생성 및 정의
def fun():
    title = "Python"
    tag = "Programming Language"
    category = "Open Source"
    downloads = "4500005230"

    # 위 데이터로 딕셔너리 생성
    dictionary = {
        "title": title,
        "tag": tag,
        "category": category,
        "downloads": downloads
    }
    return json.dumps(dictionary)

print(fun())

실행 결과

위 코드를 실행하면 함수가 JSON 객체를 그대로 반환하며, print()를 통해 아래와 같은 출력 결과를 확인할 수 있습니다.

{"title": "Python", "tag": "Programming Language", "category": "Open Source", "downloads": "4500005230"}

추가 팁: 가독성 높은 JSON 출력하기

반환되는 JSON 문자열이 길어질 경우 indent 옵션을 사용하면 들여쓰기가 적용된 보기 좋은 형태로 출력할 수 있습니다. 또한 한글 데이터를 포함할 때는 ensure_ascii=False 옵션을 지정하면 유니코드 이스케이프 없이 한글이 정상적으로 출력됩니다.

return json.dumps(dictionary, indent=4, ensure_ascii=False)

이처럼 Python 함수 안에서 딕셔너리를 json.dumps()로 변환하기만 하면, Tkinter 애플리케이션을 포함한 어떤 환경에서도 손쉽게 JSON 객체를 반환하고 활용할 수 있습니다.