파이썬 딕셔너리(dict)를 문자열(string)로 바꾸는 초간단 방법
파이썬에서 딕셔너리는 정말 유용하지만, 때로는 이 딕셔너리를 파일에 저장하거나, API 요청에 사용하거나, 단순히 로그로 출력하기 위해 문자열 형태로 바꿔야 할 때가 있습니다. 오늘은 파이썬 딕셔너리를 문자열로 변환하는 몇 가지 간단하고 효과적인 방법을 알아보겠습니다!
1. 가장 간단한 방법: str()
함수 사용하기
파이썬의 내장 함수 str()
은 어떤 객체든 그 객체의 “문자열 표현”으로 바꿔줍니다. 딕셔너리도 예외는 아니죠!
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 딕셔너리를 문자열로 변환
dict_str = str(my_dict)
print(dict_str)
# 출력: "{'name': 'Alice', 'age': 30, 'city': 'New York'}"
print(type(dict_str))
# 출력: <class 'str'>
장점:
* 매우 간단하고 직관적입니다.
* 별도의 모듈을 가져올(import) 필요가 없습니다.
단점:
* 결과 문자열은 파이썬 딕셔너리 표현 방식 그대로입니다. 이 문자열을 다시 딕셔너리로 안전하게 변환하려면 ast.literal_eval()
같은 방법을 사용해야 하며, 다른 프로그래밍 언어에서는 파싱하기 어려울 수 있습니다.
2. 표준적이고 안전한 방법: json.dumps()
사용하기
JSON(JavaScript Object Notation)은 데이터를 교환하는 데 널리 사용되는 형식입니다. 파이썬의 json
모듈은 딕셔너리를 JSON 형식의 문자열로 쉽게 변환할 수 있게 해줍니다.
import json # json 모듈을 가져옵니다.
my_dict = {'name': 'Bob', 'age': 25, 'isStudent': True, 'courses': ['Math', 'Science']}
# 딕셔너리를 JSON 문자열로 변환
json_str = json.dumps(my_dict)
print(json_str)
# 출력: {"name": "Bob", "age": 25, "isStudent": true, "courses": ["Math", "Science"]}
print(type(json_str))
# 출력: <class 'str'>
# 보기 좋게 출력하고 싶다면? (indent 사용)
pretty_json_str = json.dumps(my_dict, indent=4)
print(pretty_json_str)
# 출력:
# {
# "name": "Bob",
# "age": 25,
# "isStudent": true,
# "courses": [
# "Math",
# "Science"
# ]
# }
# 한글이 있다면? (ensure_ascii=False 사용)
my_dict_korean = {'이름': '찰리', '나이': 35}
json_korean_str = json.dumps(my_dict_korean, indent=4, ensure_ascii=False)
print(json_korean_str)
# 출력:
# {
# "이름": "찰리",
# "나이": 35
# }
장점:
* JSON은 표준 형식이라 다른 언어나 시스템과 데이터를 주고받을 때 매우 유용합니다.
* json.loads()
함수를 사용해 다시 파이썬 딕셔너리로 쉽게 변환할 수 있습니다.
* indent
옵션으로 사람이 읽기 좋은 형태로 만들 수 있습니다.
* ensure_ascii=False
옵션으로 유니코드 문자(예: 한글)를 그대로 유지할 수 있습니다.
단점:
* json
모듈을 import
해야 합니다.
* 파이썬의 모든 자료형을 JSON으로 표현할 수 있는 것은 아닙니다 (예: set
, 사용자 정의 객체 등은 바로 변환되지 않을 수 있음).
언제 어떤 방법을 사용할까요?
str()
: 단순히 디버깅 목적으로 빠르게 문자열을 확인하고 싶거나, 파이썬 환경 내에서만 사용할 간단한 문자열이 필요할 때.json.dumps()
: 파일에 저장, API 통신, 다른 시스템/언어와의 데이터 교환 등 좀 더 범용적이고 구조화된 문자열이 필요할 때. 나중에 다시 딕셔너리로 쉽게 복원해야 할 경우에도 이 방법이 좋습니다.
이제 파이썬 딕셔너리를 문자열로 자신 있게 변환해보세요! 상황에 맞는 방법을 선택해서 코드를 더욱 깔끔하고 효율적으로 만들어보시길 바랍니다. 😊