# 직렬화
# 메모리 상의 자료 구조를 있는 그대로 본을 떠서
# 파일로 저장하는 행위를 의미
# 즉, 시스템 내부의 파이썬 객체들을 파일로 저장해 뒀다가
# 다른 시스템에서도 사용 가능하도록 바이트의 형태로
# 만드는 것을 의미
# 파이썬에서 직렬화/ 역직렬화를 사용하려면 pickle이라는 모듈 필요
import pickle
sungjuk = {'name': '혜교', 'kor': 99, 'eng': 98, 'mat': 99}
# dict 자료구조를 파일에 저장 - 직렬화
# dump(자료객체, 파일객체)
with open('sungjuk.pkl', 'wb') as f:
pickle.dump(sungjuk, f)
# 파일에 저장된 자료구조를 읽어서 원래대로 풀어놈 - 역직렬화
# 변수 = load(파일객체)
with open('sungjuk.pkl', 'rb') as f:
sj = pickle.load(f)
print(sj)
type(sj)
# json과 차이점은 dict말고도 다양한 파일을 저장가능
# 성적데이터를 리스트로 저장
sungjuk=['지현', 99, 98, 99]
with open('sungjuk2.pkl', 'wb') as f:
pickle.dump(sungjuk, f)
with open('sungjuk2.pkl', 'rb') as f:
sj = pickle.load(f)
print(sj)
type(sj)