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

Python 딕셔너리를 문자열로 직렬화하고 다시 딕셔너리로 복원하는 방법

Python에서 딕셔너리를 문자열로 직렬화(serialize)한 후 다시 딕셔너리로 역직렬화(deserialize)해야 할 때 가장 널리 사용되는 방법은 json 모듈입니다. JSON 모듈은 파이썬 표준 라이브러리에 포함되어 있어 별도의 설치 없이 안정적으로 사용할 수 있으며, 데이터 교환 형식으로도 널리 쓰이기 때문에 실무에서 매우 유용합니다.

json.dumps()로 딕셔너리를 문자열로 변환하기

json.dumps() 함수는 Python 딕셔너리를 JSON 형식의 문자열로 변환합니다. 중첩된 딕셔너리 구조도 문제없이 처리할 수 있습니다.

import json

my_dict = {
    'foo': 42,
    'bar': {
        'baz': "Hello",
        'poo': 124.2
    }
}

my_json = json.dumps(my_dict)
print(my_json)

출력 결과

위 코드를 실행하면 다음과 같은 JSON 문자열이 출력됩니다.

'{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'

json.loads()로 문자열을 다시 딕셔너리로 변환하기

반대로, json.loads() 함수는 JSON 형식의 문자열을 원래의 Python 딕셔너리로 되돌립니다. 변환된 객체는 일반 딕셔너리와 동일하게 키를 사용해 값을 조회할 수 있습니다.

import json

my_str = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'

my_dict = json.loads(my_str)
print(my_dict['bar']['baz'])

출력 결과

Hello

참고 사항

dumps()와 loads()는 각각 직렬화와 역직렬화를 담당하는 짝을 이루는 함수입니다. 또한 파일 입출력이 필요한 경우에는 유사한 함수인 json.dump()json.load()를 사용하면 됩니다. 단, JSON 형식은 키가 반드시 문자열이어야 하며, tuple과 같은 일부 자료형은 직렬화 과정에서 list로 변환된다는 점에 유의해야 합니다.