[파이썬] Python dictionary to string 2가지 방법

 

 

파이썬 딕셔너리(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 통신, 다른 시스템/언어와의 데이터 교환 등 좀 더 범용적이고 구조화된 문자열이 필요할 때. 나중에 다시 딕셔너리로 쉽게 복원해야 할 경우에도 이 방법이 좋습니다.

이제 파이썬 딕셔너리를 문자열로 자신 있게 변환해보세요! 상황에 맞는 방법을 선택해서 코드를 더욱 깔끔하고 효율적으로 만들어보시길 바랍니다. 😊

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다