# 직렬화

- 객체를 연속적인 데이터로 변환하는 것

- 객체를 컴퓨터에 저장하기 위해서는 직렬화가 필요함

 

# pickle 모듈

- 파이썬에서 객체를 직렬화하는 모듈

- pickle.dump(출력할 객체, 파일객체)

with open('text.txt','wb') as f:     #직렬화된 객체는 컴퓨터에 byte로 저장되므로 'wb'를 사용 
    pickle.dump([1,2,3,4], f)        #파일객체에 출력 객체 저장

- pickle.dumps(출력할 객체)

pickle.dumps([1,2,3,4])        #출력할 객체를 바이트 형태로 반환

- pickle.load(파일객체)

     - 바이트화 되어 저장된 파일객체를 다시 원본의 모습으로 반환

- pickle.loads(바이트객체)

    - 바이트화 된 객체를 다시 원본의 모습으로 반환

pickle.loads(pickle.dumps([1,2,3,4]))    #byte화 된 [1,2,3,4]를 원본의 모습으로 반환
# [1,2,3,4]

 

 

# JSON 모듈

- Json은 pickle과는 또 다른 직렬화 방식으로, 서로 다른 언어로 작성된 프로그램에서 통신할 때 쓸 수도 있고 인간이 보기    에 알아보기 편한 형식으로 저장할 수 있기 때문에 널리 사용. 단, json으로 직렬화 할 수 있는 객체는 한정되어 있음.

import json
json.dumps([1, 2, 3, {'4': 5, '6': 7}])    #string형태로 반환 (사람이 보기 쉬움)
# '[1, 2, 3, {'4': 5, '6': 7}]'  

json.loads('[1, 2, 3, {"4": 5, "6": 7}]’)  #string 형식의 data를 list와 dictionary 등으로 복원
# [1, 2, 3, {'4': 5, '6': 7}]
import json
with open('test.txt','w') as f:
json.dump([1, 2, 3, {'4': 5, '6': 7}], f)  #파일에 json화된 객체를 저장

with open('test.txt','r') as f:
json.load(f)                               #Json화된 data를 list와 dictionary 등으로 복원

+ Recent posts