Python의 데이터 직렬화 작업 구현에 대해 이야기해 보겠습니다.

PHPz
풀어 주다: 2023-04-12 09:31:12
앞으로
2067명이 탐색했습니다.

일상적인 개발에서 데이터 직렬화 및 역직렬화는 일반적인 데이터 작업입니다. Python은 개발자가 데이터 직렬화 작업을 쉽게 구현할 수 있도록 json 모듈과 pickle 모듈이라는 두 가지 모듈을 제공합니다. 이 두 모듈의 주요 차이점은 다음과 같습니다.

  • json은 텍스트 직렬화 형식인 반면, pickle은 이진 직렬화 형식입니다.
  • json은 직관적으로 읽을 수 있지만
  • json은 상호 운용이 불가능하며 외부에서 널리 사용됩니다. Python 시스템. Pickle은 Python에만 적용됩니다.
  • 기본적으로 json은 Python의 내장 유형 중 일부만 나타낼 수 있으며 사용자 정의 클래스는 표현할 수 없습니다. 그러나 Pickle은 많은 양의 Python 데이터 유형을 나타낼 수 있습니다.

Python의 데이터 직렬화 작업 구현에 대해 이야기해 보겠습니다.

Json 모듈

Json은 전송되는 데이터의 양이 적고 데이터 형식을 쉽게 구문 분석할 수 있다는 특성으로 인해 데이터를 전달하는 데 널리 사용됩니다. 데이터 형식. 여기에는 다음과 같이 일반적으로 사용되는 여러 함수가 포함되어 있습니다.

dumps() 함수

dumps() 함수는 Python 개체를 Json 문자열로 인코딩할 수 있습니다. 예:

#字典转成json字符串 加上ensure_ascii=False以后,可以识别中文, indent=4是间隔4个空格显示 

import json 
d={'小明':{'sex':'男','addr':'上海','age':26},'小红':{ 'sex':'女','addr':'上海', 'age':24},}
print(json.dumps(d,ensure_ascii=False,indent=4)) 

#执行结果:
{
"小明": {
"sex": "男",
"addr": "上海",
"age": 26
},
"小红": {
"sex": "女",
"addr": "上海",
"age": 24
}
}
로그인 후 복사

dump() function

dump() 함수는 Python 객체를 json 문자열로 인코딩하고 별도의 파일을 작성할 필요 없이 자동으로 파일에 쓸 수 있습니다. 예:

#字典转成json字符串,不需要写文件,自动转成的json字符串写入到‘users.json’的文件中 
import json 
d={'小明':{'sex':'男','addr':'上海','age':26},'小红':{ 'sex':'女','addr':'上海', 'age':24},}
#打开一个名字为‘users.json’的空文件
fw =open('users.json','w',encoding='utf-8')

json.dump(d,fw,ensure_ascii=False,indent=4)
로그인 후 복사

loads() function

loads() 함수는 json 문자열을 Python 데이터 유형으로 변환할 수 있습니다. 예를 들어:

#这是users.json文件中的内容
{
"小明":{
"sex":"男",
"addr":"上海",
"age":26
},
"小红":{
"sex":"女",
"addr":"上海",
"age":24
}
}

#!/usr/bin/python3
#把json串变成python的数据类型 
import json
#打开‘users.json’的json文件
f =open('users.json','r',encoding='utf-8')
#读文件
res=f.read()
print(json.loads(res)) 

#执行结果:
{'小明': {'sex': '男', 'addr': '上海', 'age': 26}, '小红': {'sex': '女', 'addr': '上海', 'age': 24}}
로그인 후 복사

load() function

load()에는 load()와 유사한 함수가 있습니다. load() 함수는 json 문자열을 Python 데이터 유형으로 변환할 수 있습니다. 파일 객체이므로 별도로 읽을 필요가 없습니다. 예:

#把json串变成python的数据类型:字典,传一个文件对象,不需要再单独读文件 
import json 
#打开文件
f =open('users.json','r',encoding='utf-8') 
print(json.load(f))

#执行结果:
{'小明': {'sex': '男', 'addr': '上海', 'age': 26}, '小红': {'sex': '女', 'addr': '上海', 'age': 24}}
로그인 후 복사

Pickle 모듈

Pickle 모듈에는 Json 모듈과 유사한 기능이 있습니다. 여기에는 dump(), dump(), load() 및 load()라는 네 가지 기능도 포함되어 있습니다.

dump와 덤프의 차이점은 전자는 객체를 직렬화하는 반면 후자는 객체를 직렬화하여 파일에 저장한다는 것입니다.

로드와 로드의 차이점은 전자는 직렬화된 문자열을 역직렬화하는 반면, 후자는 파일에서 직렬화된 문자열을 읽고 역직렬화한다는 것입니다.

dumps() 함수

dumps() 함수는 데이터를 특수 형식의 Python 언어에서만 인식되는 문자열로 변환할 수 있습니다. 예:

import pickle
# dumps功能
import pickle
data = ['A', 'B', 'C','D']
print(pickle.dumps(data))

b'x80x03]qx00(Xx01x00x00x00Aqx01Xx01x00x00x00Bqx02Xx01x00x00x00Cqx03Xx01x00x00x00Dqx04e.'
로그인 후 복사

dump() 함수

dump() 함수는 다음을 통해 데이터를 변환할 수 있습니다. 특수 형태는 파이썬 언어에서만 인식되는 문자열로 변환되어 파일에 기록됩니다. 예:

# dump功能
with open('test.txt', 'wb') as f:
pickle.dump(data, f)
print('写入成功')

写入成功
로그인 후 복사

loads() function

loads() 함수는 피클 데이터를 Python 데이터 구조로 변환할 수 있습니다. 예:

# loads功能
msg = pickle.loads(datastr)
print(msg)

['A', 'B', 'C', 'D']
로그인 후 복사

load() 함수

load() 함수는 데이터 파일에서 데이터를 읽고 이를 Python 데이터 구조로 변환할 수 있습니다. 예:

# load功能
with open('test.txt', 'rb') as f:
 data = pickle.load(f)
print(data)

['A', 'B', 'C', 'D']
로그인 후 복사

Summary

이 섹션에서는 데이터 직렬화 및 역직렬화를 지원하는 Python의 json&pickle 모듈의 일반적인 작업을 소개합니다.


위 내용은 Python의 데이터 직렬화 작업 구현에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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