Python数据序列化

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

欢迎来到超国家天才学院(SAG),这是一个拥有非凡能力的人前来磨练技能的地方。在这个神圣的知识殿堂里,你是拥有操纵和解释复杂数据结构能力的独特个体之一。你的任务(如果你选择接受)涉及学院备受尊敬的思维控制专家拜特斯教授提出的一项激动人心的挑战。

拜特斯教授一直在致力于一个开创性的项目,该项目允许人类与机器之间进行心灵感应通信。然而,这个项目的关键在于有效地将以复杂模式构建的思想转化为非心灵感应机器能够处理的格式。这就是Python中的数据序列化发挥作用的地方。

你的目标是掌握数据序列化和反序列化的艺术:将Python对象转换为可以存储或传输的字节流,然后将这个字节流重新构建回对象。这项技能将使机器能够解释心灵感应数据流,从而弥合人类思维与数字处理器之间的差距。人机共生的未来掌握在你手中!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/PythonStandardLibraryGroup -.-> python/data_serialization("Data Serialization") subgraph Lab Skills python/data_serialization -.-> lab-271541{{"Python数据序列化"}} end

理解 JSON 序列化

在这一步中,你将熟悉 Python 的 json 模块,它提供了一个简单的接口,用于在 Python 对象和 JSON(JavaScript 对象表示法)格式之间进行转换,JSON 是一种轻量级的数据交换格式。

首先,你要在 ~/project 目录下打开一个名为 serialize.py 的 Python 脚本,该脚本会将一个 Python 对象序列化为一个 JSON 字符串。

将以下代码写入 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 对象了。这个过程称为反序列化。

~/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)助力,朝着人类与机器能够无障碍交流的未来迈进。你今天所取得的成就标志着人机交互发展历程中的重要一步。恭喜你,年轻的行家!