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

파이썬(Python) 딕셔너리를 문자열로 변환하는 방법

파이썬에서 데이터를 다루다 보면 딕셔너리(dict) 객체를 문자열(str)로 변환해야 하는 상황을 자주 마주하게 됩니다. 예를 들어 로그를 기록하거나, 화면에 출력하거나, 네트워크를 통해 데이터를 전송할 때가 대표적입니다. 이번 글에서는 딕셔너리를 문자열로 변환하는 두 가지 대표적인 방법을 예제와 함께 살펴보겠습니다.

1. str() 함수 사용하기

가장 간단하고 직관적인 방법은 str() 함수에 딕셔너리 객체를 인자로 전달하는 것입니다. type() 함수를 활용하면 변환 전후의 객체 타입을 쉽게 확인할 수 있습니다.

예제

DictA = {"Mon": "2 pm", "Wed": "9 am", "Fri": "11 am"}
print("주어진 딕셔너리 : \n", DictA)
print("변환 전 타입 : ", type(DictA))

# str() 함수로 변환
res = str(DictA)

# 결과 출력
print("문자열로 변환된 결과:\n", res)
print("결과의 타입 : ", type(res))

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

주어진 딕셔너리 :
{'Mon': '2 pm', 'Wed': '9 am', 'Fri': '11 am'}
변환 전 타입 : <class 'dict'>
문자열로 변환된 결과:
{'Mon': '2 pm', 'Wed': '9 am', 'Fri': '11 am'}
결과의 타입 : <class 'str'>

출력 결과만 보면 원래 딕셔너리와 동일해 보이지만, 실제로는 dict 타입에서 str 타입으로 완전히 바뀐 것을 확인할 수 있습니다.

2. json.dumps() 사용하기

두 번째 방법은 파이썬 표준 라이브러리인 json 모듈의 dumps() 메서드를 사용하는 것입니다. 이 메서드는 딕셔너리 객체를 직접 JSON 형식의 문자열로 변환해 줍니다.

예제

import json

DictA = {"Mon": "2 pm", "Wed": "9 am", "Fri": "11 am"}
print("주어진 딕셔너리 : \n", DictA)
print("변환 전 타입 : ", type(DictA))

# json.dumps()로 변환
res = json.dumps(DictA)

# 결과 출력
print("문자열로 변환된 결과:\n", res)
print("결과의 타입 : ", type(res))

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

주어진 딕셔너리 :
{'Mon': '2 pm', 'Wed': '9 am', 'Fri': '11 am'}
변환 전 타입 : <class 'dict'>
문자열로 변환된 결과:
{"Mon": "2 pm", "Wed": "9 am", "Fri": "11 am"}
결과의 타입 : <class 'str'>

str()과 json.dumps()의 차이점

두 방법 모두 결과물은 문자열이지만, 용도에 따라 선택 기준이 달라집니다.

  • str(): 단순히 파이썬 객체를 사람이 읽기 좋은 형태의 문자열로 변환합니다. 딕셔너리 내부의 따옴표가 작은따옴표(')로 유지되므로, 표준 JSON 문법에는 맞지 않습니다.
  • json.dumps(): 유효한(valid) JSON 형식의 문자열을 생성합니다. 모든 문자열 값이 큰따옴표(")로 감싸지므로, 파일 저장이나 REST API 통신 등 외부 시스템과 데이터를 주고받을 때 적합합니다.

따라서 단순 출력용이라면 str()로 충분하지만, 데이터 교환이나 저장 목적이라면 json.dumps()를 사용하는 것이 안전합니다. 또한 json.loads()를 사용하면 변환된 JSON 문자열을 다시 딕셔너리로 복원할 수 있으므로, 양방향 변환이 필요한 경우에도 json 모듈을 권장합니다.