이 기사에서는 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에서 피클 및 피클 해제하는 방법을 배웠습니다. 또는 내장 피클 모듈을 사용하는 이전 버전입니다.