# 직렬화
- 객체를 연속적인 데이터로 변환하는 것
- 객체를 컴퓨터에 저장하기 위해서는 직렬화가 필요함
# 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 등으로 복원
'Python > Programming basic' 카테고리의 다른 글
파일 입/출력_01.읽기쓰기와 인코딩 (0) | 2022.06.30 |
---|---|
상속과 예외처리_03.예외처리 (0) | 2022.06.30 |
상속과 예외처리_02.추상클래스와 isinstance (0) | 2022.06.30 |
상속과 예외처리_01.상속 (0) | 2022.06.30 |
클래스_04.특수메소드 (0) | 2022.06.27 |