더북(TheBook)

14.7 피클링

dbm의 제약 때문에 키와 값은 문자열이나 바이트만 써야 한다. 다른 타입을 사용하려 하면 오류가 발생한다.

pickle 모듈을 사용하면 이를 해결할 수 있다. pickle 모듈은 어떤 타입의 객체라도 데이터베이스 저장에 적합한 문자열로 변환하고, 변환된 문자열을 다시 객체로 변환할 수 있다.

pickle.dumps는 객체를 인수로 받아서 문자열 표현을 반환한다(dumpsdump string의 약어다).

>>> import pickle

>>> t = [1, 2, 3]

>>> pickle.dumps(t)

b'\x80\x03]q\x00(K\x01K\x02K\x03e.'

사람이 읽을 수 있는 형식은 아니지만, pickle이 이를 해석하는 것은 쉽다. pickle.loads(로드 문자열)은 객체를 재구성한다.

>>> t1 = [1, 2, 3]

>>> s = pickle.dumps(t1)

>>> t2 = pickle.loads(s)

>>> t2

[1, 2, 3]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.