> 백엔드 개발 > 파이썬 튜토리얼 > Python의 json 및 pickle에 대한 간략한 소개

Python의 json 및 pickle에 대한 간략한 소개

黄舟
풀어 주다: 2017-07-20 15:24:08
원래의
1464명이 탐색했습니다.

아래 편집기에서는 Python의 json 및 pickle에 대해 간략하게 설명합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집기를 따라 살펴보겠습니다

다음은 직렬화에 사용되는 두 개의 모듈입니다:

• json: 문자열과 Python 데이터 유형 간 변환에 사용됨

• 피클: 사용됨 Python 특정 유형과 Python 데이터 유형 간 변환

Json 모듈은 dump, dump, load, load의 네 가지 기능을 제공합니다.

pickle 모듈은 dump, dump, load, load의 네 가지 기능을 제공합니다


import pickle
data = {'k1':123, 'k2':888}
#dumps可以将数据类型转换成只有python才认识的字符串
p_str = pickle.dumps(data)
print p_str
输出结果:
(dp0
S'k2'
p1
I888
sS'k1'
p2
I123
s.
로그인 후 복사

데이터를 Python에서만 인식되는 문자열로 변환하여 파일에 씁니다.


import pickle
data = {'k1':123, 'k2':888}
#打开文件,然后将data写入
with open('data.pkl', 'wb') as f:
 pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open('data.pkl', 'rb') as f:
 data_1 = pickle.load(f)
print data_1
结果:
{'k2': 888, 'k1': 123}

文件中显示的内容与上面一致
로그인 후 복사

json의 사용법은 pickle과 동일합니다


import json
data = {'k1':123, 'k2':888}
p_str = json.dumps(data)
print p_str, type(p_str)
结果:
{"k2": 123, "k1": 888} <type &#39;str&#39;>
로그인 후 복사

사전처럼 보이지만, 하지만 실제로는 문자열이라는 점에 유의하세요. json은 문자열 형식만 가능하므로 사전처럼 보입니다.


import json
data = {&#39;k1&#39;:123, &#39;k2&#39;:123}
#打开文件,然后将data写入
with open(&#39;data.pkl&#39;, &#39;w&#39;) as f:
 json.dump(data, f)
#同样读取的时候也需要打开文件
with open(&#39;data.pkl&#39;, &#39;r&#39;) as f:
 data_1 = json.load(f)
print(data_1, type(data_1))
结果:
({u&#39;k2&#39;: 123, u&#39;k1&#39;: 123}, <type &#39;dict&#39;>)
로그인 후 복사

읽을 수 있고, 유형이 정확합니다.

그래서 피클과 json의 차이점은 무엇인가요?

위 두 코드에서 피클은 파일을 쓰고 읽을 때 'b' 모드를 사용하지만 json은 그렇지 않습니다.

json은 서로 다른 언어 간에 데이터를 교환할 수 있는 반면, 피클은 Python 간에만 사용됩니다.

json은 가장 기본적인 데이터 유형만 직렬화할 수 있는 반면, 피클은 클래스와 함수를 포함한 모든 데이터 유형을 직렬화할 수 있습니다.

위 내용은 Python의 json 및 pickle에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿