직렬화를 위한 두 가지 모듈은 다음과 같습니다.
• json: 문자열과 Python 데이터 유형 간 변환에 사용
• pickle: Python 관련 유형과 Python 데이터 유형 간 변환에 사용
Json 모듈은 네 가지 기능을 제공합니다: 덤프, dump, 로드, 로드
피클 모듈은 네 가지 기능을 제공합니다: 덤프, 덤프, 로드, 로드
dumps는 데이터 유형을 직렬화로 변환할 수 있습니다(Python에서만 인식됨) 문자열
>>> import pickle >>> data = {'name':'python', 'site':'pythontab.com'} >>> pstr = pickle.dumps(data) >>> print pstr (dp0 S'name' p1 S'python' p2 sS'site' p3 S'pythontab.com' p4 s.
데이터를 직렬화로 변환
import pickle data = {'name':'python', 'site':'pythontab.com'} #打开文件,然后将data写入 with open('dump.data', 'wb') as f: pickle.dump(data, f) #同样读取的时候也需要打开文件 with open('dump.data', 'rb') as f: data_load = pickle.load(f) print data_load
결과:
{'name':'python', 'site':'pythontab.com'}
파일에 표시된 내용은 위와 일치합니다
json과 pickle의 사용법은 같습니다.
import json data = {'name':'python', 'site':'pythontab.com'} jstr = json.dumps(data) print jstr, type(jstr)
결과:
{"name":"python", "site":"pythontab.com"} <type 'str'>
참고: 사전처럼 보이지만 조심하세요. 실제로는 문자열입니다. json은 문자열 형식만 가능하기 때문에 사전처럼 보일 뿐입니다. 그게 전부입니다.
json은 서로 다른 언어 간에 데이터를 교환할 수 있는 반면, 피클은 Python 간에만 사용됩니다.
json은 가장 기본적인 데이터 유형만 직렬화할 수 있는 반면, 피클은 클래스와 함수를 포함한 모든 데이터 유형을 직렬화할 수 있습니다.
위 내용은 Python 직렬화 모듈 pickle과 json의 차이점 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!