이 기사에서는 Python에서 다양한 데이터 유형을 피클링하는 방법을 배웁니다. 부울, 정수, 부동 소수점, 복소수, 문자열, 튜플, 목록, 집합 및 선택 가능한 개체를 포함하는 사전을 피클할 수 있습니다. 제너레이터, 내부 로컬 클래스, 람다 함수와 같은 일부 엔터티는 피클할 수 없습니다.
절임이란 무엇입니까?
피클링에는 객체 유형 및 관련 구조의 Python 엔터티를 직렬화 및 역직렬화하는 연속 주기가 포함되며, 이를 마샬링 또는 평면화라고도 합니다. 여기에는 메모리에 있는 객체를 디스크에 저장하거나 전송할 수 있는 바이트 형태로 변환하는 작업이 포함됩니다. 로컬 네트워크로 이동합니다.
사용상의 제약은 무엇입니까?
다른 프로그래밍 언어를 사용하여 데이터를 공유하려는 경우 피클 모듈을 사용하는 것은 바람직하지 않습니다. 즉, 플랫폼 간 호환성이 보장되지 않습니다.
피클링은 파일 처리 없이 원시 데이터에 대해 수행할 수 있습니다. 이 모듈에서는 직렬화 프로세스를 통해 원시 데이터를 바이너리 파일로 피클링하는 방법을 배웁니다.
예
# Python pickling import pickle as pk def learnData(): # data to be stored in database dict_1 = {'tutorial':'point','Python':'3.x'} dict_2 = {'Data structure':'dictionary','pickling':'serialization'} # database db = {} db['1'] = dict_1 db['2'] = dict_2 # binary file open using filepointer in append mode fp = open('Newfile', 'ab') # source, destination pk.dump(db, fp) fp.close() def displayData(): # binary file open using filepointer in read mode fp = open('Newfile', 'rb') db = pk.load(fp) for i in db: print(i, '=>', db[i]) fp.close() if __name__ == '__main__': learnData() displayData()
출력
dict_1 = {'tutorial':'point','Python':'3.x'} dict_2 = {'Data structure':'dictionary','pickling':'serialization'}
결론
이 기사에서는 Python 3.x에서 피클 및 피클 해제하는 방법을 배웠습니다. 또는 내장 피클 모듈을 사용하는 이전 버전입니다.