Python数据序列化(Data Serialization)实用总结

liftword12小时前技术文章2

在Python编程中,数据序列化是将Python对象转换为字节序列的过程,以便可以在不同的环境中存储和传输。相反,数据反序列化是将字节序列转换回Python对象的过程。

以下是一些关于Python数据序列化的实用总结和技巧:

1. 基础序列化

  • 序列化通常用于将Python对象转换为字节序列,以便存储或传输。
  • 反序列化是将字节序列转换回Python对象。
import pickle

# 创建一个字典
data = {"name": "Alice", "age": 25}

# 序列化字典
serialized_data = pickle.dumps(data)
print(serialized_data)

# 反序列化字典
deserialized_data = pickle.loads(serialized_data)
print(deserialized_data)

2. JSON序列化

  • JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于解析和生成。
  • Python的json模块提供了JSON数据的编码和解码功能。
import json

# 创建一个字典
data = {"name": "Alice", "age": 25}

# 序列化字典为JSON字符串
json_data = json.dumps(data)
print(json_data)

# 反序列化JSON字符串为字典
deserialized_data = json.loads(json_data)
print(deserialized_data)

3. XML序列化

  • XML是一种标记语言,用于描述数据。
  • Python的xml.etree.ElementTree模块提供了XML数据的解析和生成功能。
import xml.etree.ElementTree as ET

# 创建一个字典
data = {"name": "Alice", "age": 25}

# 将字典转换为XML元素
root = ET.Element("data")
for key, value in data.items():
    child = ET.SubElement(root, key)
    child.text = str(value)

# 序列化XML元素为字符串
xml_data = ET.tostring(root, encoding="utf-8", method="xml")
print(xml_data)

# 反序列化XML字符串为字典
deserialized_data = ET.fromstring(xml_data)
print(deserialized_data)

4. YAML序列化

  • YAML是一种数据序列化格式,易于阅读和编写。
  • Python的yaml模块提供了YAML数据的编码和解码功能。
import yaml

# 创建一个字典
data = {"name": "Alice", "age": 25}

# 序列化字典为YAML字符串
yaml_data = yaml.dump(data)
print(yaml_data)

# 反序列化YAML字符串为字典
deserialized_data = yaml.load(yaml_data, Loader=yaml.FullLoader)
print(deserialized_data)

5. CSV序列化

  • CSV是一种文本文件格式,用于存储表格数据。
  • Python的csv模块提供了CSV文件的读取和写入功能。
import csv

# 创建一个字典列表
data = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]

# 序列化字典列表为CSV字符串
csv_data = csv.writer(csv.StringIO()).writerows(data)
print(csv_data)

# 反序列化CSV字符串为字典列表
deserialized_data = [row for row in csv.reader(csv_data)]
print(deserialized_data)

数据序列化是Python编程中非常重要的一部分,它可以帮助你将Python对象转换为字节序列,以便在不同的环境中存储和传输。在实际编程中,根据具体需求选择合适的序列化格式,可以提高代码的效率和质量。

相关文章

使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)

最近领导安排让我每周定时把grafana导出的csv文件进行统计汇总工作,需要处理的csv文件还是蛮多的,况且还要每周重复汇总处理。干脆写个脚本,每周执行一遍脚本,既方便还不会出错。一、需求分析1....

python爬虫25 | 爬取的数据怎么保存?CSV了解一下

大家好我是小帅b是一个练习时长两年半的练习生喜欢唱!跳!rap!篮球!敲代码!装逼!不好意思我又走错片场了接下来的几篇文章小帅b将告诉你如何将你爬取到的数据保存下来有文本文件、redis、数据库(My...

将MySQL查询结果输出为CSV格式的方法

技术背景在数据库管理和数据分析中,我们常常需要将MySQL查询结果以CSV格式输出,方便在其他工具(如Excel、Python数据分析库)中进行进一步处理。然而,由于CSV格式有其特定的规范,如字段分...

Django 如何使用视图动态输出 CSV 以及 PDF

Django 如何使用视图动态输出 CSV 以及 PDF这一篇我们需要用到 python 的 csv 和 reportLab 库,通过django视图来定义输出我们需要的 csv 或者 pdf 文件。...

Python版的迷你程序——json文件转换为csv

浅话C语言是过去几十年软件和硬件两个阵营之间,签署的最坚实的契约。硬件为C语言的语义提供了最能发挥其性能的基础构件,而软件虽然搞了很多的圆环套圆环般的层次,但最终都以C语言作为最后的沉淀收尾。----...

Python CSV文件的读写和处理(csv python 读取)

一、介绍CSV文件的概念和结构CSV(Comma-Separated Values,逗号分隔值)是一种常见的文本文件格式,用于存储表格数据。CSV 文件以纯文本形式存储数据,使用逗号作为字段之间的分隔...