패스트캠퍼스_컴공전공필수+인공지능/0원 챌린지
3/06(월) 파일 입/출력 3
2EV
2023. 3. 6. 23:21
직렬화
- 직렬화란:
- 객체를 연속적인 데이터로 변환하는 것이다.
- 연속적 -> 직렬 => 따라서 이름이 직렬화(Serialize) 이다.
- 컴퓨터 : 0,1 로 이루어짐 -> 따라서 객체를 0,1 로 데이터 바꾸는 과정이다.
- 객체를 컴퓨터에 저장하기 위해서는 직렬화가 필요하다!
- Pickle 모듈
- 파이썬에서 객체를 직렬화하는 모듈은 =>pickle 이다.
- <<내용,객체 -> 직렬화 -> 저장>>
- pickle.dump (출력할 객체, 파일 객체) : 파일 객체에 출력할 객체를 저장한다. (파일에!! 직렬화하여 파일에 저장)
- 사용예시)
- with open('test.txt','wb') as f: #파일 open, with 사용해서, write byte = wb 로 저장(쓰기) 할 것이므로 write, 직렬화는 0,1 바이트이므로 byte 사용
- pickle.dump([1,2,3,4],f) #= f 파일에 [1,2,3,4] 를 저장,쓴다.
- with open('test.txt','wb') as f: #파일 open, with 사용해서, write byte = wb 로 저장(쓰기) 할 것이므로 write, 직렬화는 0,1 바이트이므로 byte 사용
- pickle.dumps(출력할객체) : (s가 붙어있다.)출력할 객체를 바이트 형태로 반환한다. (파일 안거치고 바로 직렬화 0,1 해서 반환)
- 사용예시)
- pickle.dumps([1,2,3,4])
- <<직렬화된 객체 -> 다시 원상복귀 변환>>
- pickle.load(파일객체) : pickle을 통해 바이트화 되어 저장된 파일객체를 다시 원본의 모습으로 반환한다. (파일! 을 직렬화된 객체를 풀어서 원본으로 돌리는 과정)
- pickle.loads(바이트 객체) : pickle을 통해 바이트화 된 객체를 다시 원본 모습으로 반환한다. (파일 없이! 바로 바이트화 직렬화 된 객체를 원본 모습으로 돌리는 과정)
- 사용예시)
- pickle.loads(pickle.dumps([1,2,3,4])) #loads 함수 안의 내용은 출력할 객체를 바이트 형태로 변환한 dumps 내용이다.
- Json 모듈
- Json 은 pickle과는 또다른 직렬화 방식으로,
- 서로 다른 언어로 작성된 프로그램에서 통신할 때 쓸 수 있고
- 인간이 보기에 알아보기 편한 형식으로 저장할 수 있기 때문에 널리 사용된다.
- 단, json 으로 직렬화 할 수 있는 객체는 한정되어 있다. (단점)
- 사용예시)
- import json
- json.dumps([1,2,3,{'4':5,'6':7}]) # string 형식으로 반환된다. (0,1로 이루어진 직렬화 아니다.)
- 사용예시)
- import json
- json.loads('[1,2,3,{"4":5,"6":7}]') # String 형식의 data를 list와 dictionary 등의 원본 형태로 복원한다.
- 사용예시)
- improt json
- with open('test.txt','w') as f: #file open 부분, pickle에서는 바이트 다루므로 바이트 형식의 wb를 사용했지만 <-> json 은 string 형태로 가져가므로 그냥 write w 면 된다.
- json.dump([1,2,3,{'4':5,'6':7}],f) # f 파일에 넣는다.
- => 파일에 json 화 된 객체 저장한다.
- 사용예시)
- improt json
- with open('test.txt','r') as f: # 파일과 관련한 json 직렬화 방식
- json.load(f)# load -> 직렬화 객체 -=> 원본복원이다.
- => Json 화 된 data를 list 와 dictionary 등의 형태로 복원한다.
* 필수 삽입 링크 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
<사진 2장>


> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.