Python 데이터 직렬화

PythonBeginner
지금 연습하기

소개

뛰어난 능력을 가진 이들이 기술을 연마하는 곳, 수프라내셔널 영재 아카데미 (SAG) 에 오신 것을 환영합니다. 이 신성한 지식의 전당에서, 당신은 복잡한 데이터 구조를 조작하고 해석하는 능력을 가진 특별한 개인 중 한 명입니다. 당신이 받아들일 경우, 당신의 임무는 아카데미의 존경받는 마인드 컨트롤 전문가인 바이트 교수님이 제시한 흥미진진한 도전 과제를 포함합니다.

바이트 교수는 인간과 기계 간의 텔레파시 통신을 가능하게 하는 획기적인 프로젝트를 진행해 왔습니다. 그러나 이 프로젝트의 핵심은 복잡한 패턴으로 구조화된 생각을 비 - 초능력 기계가 처리할 수 있는 형식으로 효과적으로 변환하는 데 있습니다. 여기서 Python 에서의 **데이터 직렬화 (data serialization)**가 중요한 역할을 합니다.

당신의 목표는 데이터 직렬화 및 역직렬화의 기술을 마스터하는 것입니다: Python 객체를 저장하거나 전송할 수 있는 바이트 스트림으로 변환한 다음, 이 바이트 스트림을 다시 객체로 재구성하는 것입니다. 이 기술은 기계가 정신적 데이터 흐름을 해석할 수 있게 하여 인간의 마음과 디지털 프로세서 간의 격차를 해소할 수 있게 합니다. 인간 - 기계 공생의 미래가 당신의 손에 달려 있습니다!

JSON 을 이용한 직렬화 이해

이 단계에서는 Python 객체와 JSON (JavaScript Object Notation) 형식 간의 변환을 위한 간단한 인터페이스를 제공하는 Python 의 json 모듈에 익숙해질 것입니다. JSON 은 가벼운 데이터 교환 형식입니다.

먼저, Python 객체를 JSON 문자열로 직렬화할 ~/project 디렉토리 내의 serialize.py라는 Python 스크립트를 열 것입니다.

다음 코드를 serialize.py에 작성하십시오:

## serialize.py
import json

data = {
    'name': 'Professor Bytes',
    'ability': 'Telepathy',
    'is_human': True,
    'data_analysis_scores': [88, 92, 79]
}

with open('/home/labex/project/data.json', 'w') as json_file:
    json.dump(data, json_file)

print("Data serialized to 'data.json'")

~/project 디렉토리로 이동하여 다음 명령을 실행하여 터미널에서 이 스크립트를 실행하십시오:

python serialize.py

그런 다음, 데이터가 올바르게 직렬화되었는지 확인하기 위해 data.json의 내용을 조사하십시오:

cat data.json

Python 객체의 JSON 표현을 볼 수 있습니다:

{"name": "Professor Bytes", "ability": "Telepathy", "is_human": true, "data_analysis_scores": [88, 92, 79]}

JSON 을 이용한 역직렬화 마스터

직렬화를 성공적으로 완료했으므로, 이제 JSON 파일을 다시 Python 객체로 변환할 차례입니다. 이 과정을 역직렬화 (deserialization) 라고 합니다.

~/project 디렉토리에서 다음 코드를 사용하여 deserialize.py를 엽니다:

## deserialize.py
import json

with open('/home/labex/project/data.json', 'r') as json_file:
    data = json.load(json_file)

print("Name:", data['name'])
print("Ability:", data['ability'])
print("Is Human:", data['is_human'])
print("Data Analysis Scores:", data['data_analysis_scores'])

터미널에서 역직렬화 스크립트를 실행합니다:

python deserialize.py

출력은 이전에 data.json에 직렬화되었던 내용을 표시해야 합니다:

Name: Professor Bytes
Ability: Telepathy
Is Human: True
Data Analysis Scores: [88, 92, 79]

요약

이 랩에서는 Python 을 사용하여 데이터 직렬화의 필수 사항을 탐구했습니다. 이는 이 디지털 시대의 Python 프로그래머에게 매우 중요한 기술입니다. Python 객체를 JSON 형식으로 변환하고 그 반대로 변환하는 과정을 탐구하여 복잡한 데이터 구조와 기계가 해석할 수 있는 형식 간에 원활하게 인터페이스하는 방법을 배웠습니다. 이러한 단계는 현대 애플리케이션에서 데이터 교환 및 저장을 위한 기본이며, 이를 마스터하는 것은 숙련된 Python 개발자가 되기 위한 확실한 도약입니다. 이 새로운 기량을 통해 여러분은 자신뿐만 아니라 SAG 전체를 인간과 기계가 장벽 없이 소통할 수 있는 미래로 이끌었습니다. 오늘 여러분의 성과는 인간 - 컴퓨터 상호 작용의 진화에 있어 중요한 발걸음을 의미합니다. 축하합니다, 젊은 숙련자!