玩转Python必备的几种数据格式:从基础到高级应用

Python数据类型详细介绍 一、数字(Number) 1. int (整型,长整型) 2. float (浮点型) 3. complex(复数) 二、布尔(Boolean) 三、字符串类型(String) 四、列表 1. 创建列表 2. 列表的索引 3. 列表的切片 4. 列表加法和乘法 5.列表的修改 6. 列表的删除 7. 列表追加、插入和扩展 8. 列表元素查找 9. 列表相关的相关内置函数 10.多维列表 五、元组 1. 元组相关概述 2. 元组修改 3. 元组删除 阅读详情

包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取】

前言
在Python开发中,数据格式的选择直接影响着程序的性能和可维护性。不同的数据格式有着各自的特点和适用场景。本文将详细介绍Python开发中最常用的几种数据格式,包括它们的特性、使用场景以及相互转换方法,帮助你根据实际需求选择最合适的数据表示方式。

1. JSON - 轻量级的数据交换格式
基本介绍
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。

Python操作JSON

import json

# Python对象转JSON字符串
data = {"name": "张三", "age": 25, "is_student": True}
json_str = json.dumps(data, ensure_ascii=False)  # ensure_ascii=False支持中文
print(json_str)  # 输出: {"name": "张三", "age": 25, "is_student": true}

# JSON字符串转Python对象
python_obj = json.loads(json_str)
print(python_obj["name"])  # 输出: 张三

# 读写JSON文件
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False)

with open('data.json', 'r', encoding='utf-8') as f:
    loaded_data = json.load(f)

适用场景
Web API数据传输

配置文件存储

不同语言系统间的数据交换

2. CSV - 表格数据的最佳选择
基本介绍
CSV(Comma-Separated Values)是以纯文本形式存储表格数据的常用格式。

Python操作CSV

import csv

# 写入CSV文件
data = [
    ['姓名', '年龄', '城市'],
    ['张三', '25', '北京'],
    ['李四', '30', '上海']
]

with open('data.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerows(data)

# 读取CSV文件
with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

# 使用DictReader更友好
with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row['姓名'], row['年龄'])

适用场景
电子表格数据导出/导入

数据分析的原始数据存储

数据库表数据备份

3. XML - 结构化文档的标准
基本介绍
XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。

Python操作XML

import xml.etree.ElementTree as ET

# 创建XML
root = ET.Element("catalog")
book1 = ET.SubElement(root, "book", id="1")
ET.SubElement(book1, "title").text = "Python编程"
ET.SubElement(book1, "author").text = "张三"
ET.SubElement(book1, "price").text = "59.00"

tree = ET.ElementTree(root)
tree.write("books.xml", encoding="utf-8", xml_declaration=True)

# 解析XML
tree = ET.parse("books.xml")
root = tree.getroot()

for book in root.findall("book"):
    title = book.find("title").text
    price = book.find("price").text
    print(f"书名: {title}, 价格: {price}")

适用场景
配置文件(如Android的布局文件)

Web服务(如SOAP协议)

文档结构存储(如Office文档格式)

4. YAML - 人性化的配置文件格式
基本介绍
YAML(YAML Ain’t Markup Language)是一种人性化的数据序列化标准,比JSON更易读。

Python操作YAML

import yaml

# 写入YAML文件
data = {
    'name': '张三',
    'age': 25,
    'skills': ['Python', 'Java', 'SQL'],
    'address': {
        'city': '北京',
        'postcode': '100000'
    }
}

with open('data.yaml', 'w', encoding='utf-8') as f:
    yaml.dump(data, f, allow_unicode=True)

# 读取YAML文件
with open('data.yaml', 'r', encoding='utf-8') as f:
    loaded_data = yaml.safe_load(f)
    print(loaded_data['name'])

适用场景
应用程序配置文件

持续集成/部署配置(如GitLab CI)

复杂数据结构的序列化

5. Pickle - Python对象的二进制序列化
基本介绍
Pickle是Python特有的数据序列化格式,可以将任意Python对象转换为二进制格式。

Python操作Pickle

import pickle

# 序列化对象
data = {'a': [1, 2, 3], 'b': ('string', '另一个字符串'), 'c': None}
with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)

# 反序列化
with open('data.pkl', 'rb') as f:
    loaded_data = pickle.load(f)
    print(loaded_data)

注意事项
安全性:不要反序列化不受信任的来源的数据

兼容性:不同Python版本间的Pickle文件可能不兼容

适用场景
Python对象的本地持久化

机器学习模型的保存

进程间通信

6. Parquet - 高效的大数据列式存储
基本介绍
Parquet是一种列式存储格式,特别适合大数据处理和分析。

Python操作Parquet

import pandas as pd
import pyarrow.parquet as pq

# 创建示例DataFrame
df = pd.DataFrame({
    'name': ['张三', '李四', '王五'],
    'age': [25, 30, 35],
    'city': ['北京', '上海', '广州']
})

# 写入Parquet文件
df.to_parquet('data.parquet')

# 读取Parquet文件
df_read = pd.read_parquet('data.parquet')
print(df_read.head())

适用场景
大数据分析

数据仓库存储

需要高效查询的大型数据集

7. Protocol Buffers - 高效的二进制序列化格式
基本介绍
Protocol Buffers(protobuf)是Google开发的高效二进制序列化格式。

Python使用示例
先定义.proto文件:

syntax = "proto3";

message Person {
    string name = 1;
    int32 age = 2;
    repeated string emails = 3;
}

使用protoc编译:

protoc --python_out=. person.proto

Python中使用:

import person_pb2

# 创建并序列化
person = person_pb2.Person()
person.name = "张三"
person.age = 25
person.emails.append("zhangsan@example.com")

serialized = person.SerializeToString()

# 反序列化
new_person = person_pb2.Person()
new_person.ParseFromString(serialized)
print(new_person.name)

适用场景
高性能网络通信

微服务间数据传输

需要版本兼容的数据存储

数据格式对比与选择建议

在这里插入图片描述
选择建议:

需要人类可读的配置:YAML > JSON > XML

Web API交互:JSON

大数据分析:Parquet

Python对象持久化:Pickle

高性能网络通信:Protobuf

简单表格数据:CSV

格式转换技巧
JSON转CSV

import json
import csv

with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

# 假设data是列表形式的JSON
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

CSV转JSON

import csv
import json

with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    data = [row for row in reader]

with open('output.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

Pandas多格式转换

import pandas as pd

# 读取各种格式
df_json = pd.read_json('data.json')
df_csv = pd.read_csv('data.csv')
df_parquet = pd.read_parquet('data.parquet')

# 写入各种格式
df.to_json('output.json', orient='records', force_ascii=False)
df.to_csv('output.csv', index=False)
df.to_parquet('output.parquet')

结语
掌握Python中各种数据格式的特点和用法,能够让你在开发过程中根据具体需求选择最合适的工具。无论是简单的配置文件,还是复杂的大数据处理,Python生态都提供了完善的解决方案。

在实际项目中,往往需要根据性能要求、可读性需求、团队习惯等因素综合考虑选择哪种数据格式。建议多实践、多比较,积累经验后自然能够做出最佳选择。

最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

包含编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习

在这里插入图片描述

Python中常见的基本数据类型 数值类型,整型进制表示法。二进制:0b开头,只能包含0、1。八进制:0o开头,能包含0-7。十六进制:0x开头,能包含0-F。整形进制操作。bin:任意进制转二进制,接收一个int,返回一个str。oct:任意进制转八进制,接收一个int,返回一个str。hex:任意进制转十六进制,接收一个int,返回一个str。int:任意进制转十进制,接收一个int/str,返回一个int。 阅读详情

相关推荐

Python玩转汽车诊断:udsoncan模块详解之安全访问与DID读写实战

本文深入探讨了如何使用Python的udsoncan模块实现汽车诊断中的安全访问与DID读写功能。通过解析UDS协议的安全访问机制和自定义算法实现,以及开发数据标识符编解码器,帮助工程师高效处理汽车ECU诊断任务。文章还提供了异常处理、调试技巧和性能优化方案,全面提升诊断效率。

weixin_30915275的博客 501

JSON的三种格式

JSON的全称是JavaScript Object Notation

daxiong0816的博客 16万+

零基础玩转NILM:用nilmtk提取UKDALE电器数据的保姆级教程

本文为零基础用户提供了一份详细的NILM入门指南,重点讲解如何使用nilmtk工具包从UKDALE数据集中提取电器级用电数据。教程涵盖环境搭建、核心概念解析、数据提取实战及常见问题排查,帮助读者快速掌握非侵入式负荷监测的数据预处理关键步骤。

rgv234567的博客 499

【Python基础篇】Python中的七种数据类型

a = b[begin, end, step],begin表示开始位置,默认为0,end表示结束位置,默认为变量长度,step表示步长,默认为1。从存储的角度来理解,浅拷贝就是增加了指针指向值的存储地址,并没有对值开辟新的内存空间进行存储,深拷贝则是开辟新的内存空间去存储并指针指向新的内存地址。如果从相对简单的角度来理解的话,浅拷贝和深拷贝是针对嵌套对象的区别,对原数据的嵌套对象的修改,浅拷贝对应的嵌套对象会同步影响,深拷贝就不会受影响。列表是以[]定义,用英文逗号分隔开的集合,元素是可以重复的。

qq_44723773的博客 2万+

玩转STM32F103串口通信:手把手教你用CubeMX配置UART+DMA传输

本文详细介绍了如何在STM32F103上使用CubeMX配置UART串口通信与DMA传输,实现高效稳定的数据传输。通过环境准备、CubeMX基础配置、代码实现到性能优化的全流程讲解,帮助开发者快速掌握STM32F103的UART+DMA技术,解决常见问题并提升通信效率。

weixin_30919429的博客 508

超级详细!!!新手使用AutoDL跑深度学习(MixVPR项目)的学习记录

新手第一次在AutoDL上跑深度学习的实验,遇到一些问题,简单记录一下。如果大家发现问题,欢迎和我讨论。

weixin_45152283的博客 5万+

JSON 格式详解

JSON 是一种基于文本的数据交换格式,源于 JavaScript 语言,但其设计目的是独立于语言的。目前,几乎所有主流编程语言都支持 JSON,常用于数据存储和网络传输。以下是B站尚硅谷javaweb课程老师的图解:尚硅谷Javaweb教程JSON 的结构由两种基本数据结构组成:对象(object)和数组(array)。对象是键值对的集合,而数组是有序的值集合。JSON 作为一种轻量级的数据交换格式,凭借其简洁、易于解析等特点,已经成为了 Web 开发中的事实标准。

Huazzi的博客 2万+

汇川AM402、H3U和上位机C#ModebusTcp通讯

目录一、测试任务二、测试环境三、PLC工程1、组态配置2、ip地址、端口号 3、全局变量定义四、C#端Winform程序创建1创建主界面 2、创建子窗口 3、运行生成,界面效果4、Modebus协议说明5、Modebus操作说明六、测试1、寄存器读测试 2、MW1300寄存器的BIT位3、写寄存器测试4、PLC断电或者断网 七、工程下载连接1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。2、PC端在有的PLC断电、断网的

panjinliang066333的博客 2万+

玩转Python必备的几种数据格式

掌握这些数据格式的处理方法,可以帮助我们更高效地提取和利用爬取到的数据。希望这些示例能帮助你更好地理解和应用这些知识。

m0_75067629的博客 1012

tiktok算法协议研究

经过上述分析,可以确定目标字符串来源于一段 JSON 数据,而这段 JSON 数据来自于一个经过加密的本地文件。对字符串 "sdi_v2" 进行 SHA-1 计算,得到 20 字节的结果;将第一步得到的数据进行MD5计算,生成16字节的结果;将第二步的结果转换为十六进制字符串,从而得到 32 字节的密钥。写这种算法分析的帖子真的是太无聊了,就先分析到这里吧,后续有机会再来谈下被加密的本地文件是怎么来的!!自我感觉TT的算法并不难,就是量太大了,所以我想问问有没有感兴趣的朋友来一起分析,欢迎联系。

2503_90751938的博客 2577

vsomeip3 双机通信文件配置

验证环境 vsomeip地址Android运行命令,红色的地方需要和配置文件一样Linux运行命令,红色的地方需要和配置文件一样Linux service配置文件 ,红色的地方需要更改Android client配置文件,红色的地方需要更改,蓝色的地方可不要 ...

m0_37132481的博客 5222

玩转Python必备:史上最全的Python库,【值得收藏,事半功倍】

库名称 简介 Chardet字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable主要用于在终端或浏览器端构建格式化的输出。 difflib,[Python]标准库,计算文本差异 Levenshtein,快速计算字符串相似度。 fuzzywuzzy,字符串模糊匹配。 esmre,正则表达式...

代码很美妙 4539

SpringBoot Actuator未授权访问漏洞实战:从发现到利用

本文深入剖析了SpringBoot Actuator未授权访问漏洞的成因、危害与利用手法。文章详细演示了如何发现暴露的端点,并通过实战案例复现了从敏感信息泄露到利用反序列化漏洞实现远程代码执行(RCE)的全过程,为开发与运维人员提供了从漏洞发现到修复加固的完整安全指南。

weixin_29231221的博客 260

JSON数据格式全解析:从语法基础到跨语言实战与性能优化

数据交换格式是不同系统间实现互操作的关键技术基础,其核心价值在于建立统一、高效的数据表示规范。JSON作为一种轻量级的文本数据交换格式,因其语法简洁、人类可读且机器易解析的特性,已成为现代Web开发和API通信的事实标准。它基于键值对和两种核心结构(对象与数组)构建,支持无限嵌套,能够灵活模拟现实世界的复杂数据关系。在工程实践中,JSON通过序列化与反序列化操作,实现了内存对象与传输字符串之间的高效转换,被Python、JavaScript、Java等主流编程语言广泛支持。其应用场景覆盖了从配置文件、API

weixin_30367873的博客 400

Vue3 - 最新实现在线预览Excel文件(xls/xlsx)多种方案,解析打开excel电子表格支持服务器链接在线URL形式、调用后端接口获取二进制文件流、文件地址(vue3实现excel预览)

vue3,预览excel文件,xlsx,xls,vue预览Excel表格,vue在线编辑xls文件,预览和编辑,vue3如何新开一页浏览器打开查看,手机h5页面打开在线EXCEL文档,在弹框中加载预览,在指定模态框中显示,基于Vue的Excel文件预览,加载失败白屏,报错没反应,详细示例代码教程,文件预览下载,nuxt3,excel预览插件,xlsx插件预览,纯前端vue中预览excel表格,接口调用的文件如何预览查看,文件url地址,vue移动端实现excel在线预览,vue移动端H5网页excel预览,

🏆 前端领域优质创作者 1万+

Python爬虫零基础入门【第九章:实战项目教学·第17节】内容指纹去重:URL 变体/重复正文的识别!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 824

玩转python网络爬虫-清华大学出版社-图书详情-《玩转Python网络爬虫》

前 言随着大数据和人工智能的普及,Python的地位也变得水涨船高,许多技术人员投身于Python开发,其中网络爬虫是Python最为热门的应用领域之一。在爬虫领域,Python可以说是处于霸主地位,Python能解决爬虫开发过程中所遇到的难题,开发速度快且支持异步编程,大大缩短了开发周期,因此,学习Python爬虫编程,或为爬虫工程师的必备技能。本书结构本书共分18章,各章内容概述如下:第...

weixin_39968266的博客 303

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Altair可视化神器:用Python玩转声明式统计图表!(手把手教程)

alt.themes.enable('dark') # 启用暗黑主题# 自定义主题Altair就像可视化界的瑞士军刀——轻便灵活,上手简单。特别是做统计图表时,那种行云流水的操作体验,用过就回不去了!虽然不适合所有场景,但绝对是数据分析师武器库里的必备利器。最后送大家一个私藏小技巧:按住Shift键点击图例项,可以实现多选过滤!快去用Altair开启你的可视化新次元吧~(实测能省下至少50%的画图时间!

xiaobin88999的博客 620

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

三步掌握 md2pptx:零基础也能玩转 Markdown 转 PPT

### ???? 文本转幻灯片:像搭积木一样简单 md2pptx 最神奇的能力,就是把 Markdown 里的标题自动变成 PPT 里的幻灯片!就像你在文档里写 `# 大标题`,它就知道这是封面;写 `## 二级标题`,就自动生成章节页。✨ 这种"写文档即做 PPT"的体验,简直是高效办公的福音! ### ???? 代码块变图表:创作者的可视化神器 如果你是创作者,肯定会爱上这个功能!把代码块丢进 Ma...

gitblog_00134的博客 475

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

零基础入门:免费大模型API使用全指南

我第一次写的时候,在数据格式上栽了跟头——一定要严格按照API文档要求的格式组织参数,比如消息要放在messages数组里,角色要区分user和assistant。现在很多平台都提供免费的大模型API试用额度,比如国内外的知名AI服务商。这种即时反馈的成就感,才是坚持学习的最佳动力。作为一个刚接触编程不久的人,我最初看到"API"、"密钥"这些术语就头大,但实际操作后发现,只要跟着步骤来,半小时就能做出自己的第一个AI小应用。比如我的问答机器人项目,从编码到上线只用了20分钟,还能生成分享链接给朋友体验。

NightshadeEagle34的博客 601

Day12: Python数据交互高手修炼手册:轻松玩转JSON/XML/Excel/数据库!

今天我们要解锁Python最实用的数据交互技能,让你轻松应对各种数据格式和数据库操作。准备好你的咖啡,跟着这些实战代码一起升级打怪吧!试着用今天学的所有技术,做一个【自动抓取网页数据→存储到数据库→生成Excel报表】的完整流程吧!遇到卡点欢迎在评论区交流~ 💬。

yezi1238的博客 1040

LLM应用开发必备:Guardrails框架构建安全与结构化输出护栏

在大语言模型应用开发中,确保模型输出的结构化和安全性是核心挑战。其原理在于通过声明式规范对LLM的输入输出进行约束和验证,从而将不可控的概率生成转化为可控、可预测的流程。这项技术的核心价值在于将业务逻辑中的校验代码标准化、模块化,显著提升应用的可靠性与安全性。典型的应用场景包括需要严格返回JSON格式的对话机器人、必须过滤有害内容的客服助手,以及任何对输出格式和内容有明确要求的生成式AI应用。本文以Guardrails框架为例,深入解析了如何通过RAIL规范、验证器和失败处理策略,为LLM应用构建一道坚实的

weixin_33724570的博客 518

大数据分析与应用:那些新手必须掌握的核心知识点

摘要: 本文为大数据分析新手梳理了四大核心知识点:1)基础认知:理解大数据的三大特征(数据量大、类型杂、速度快)及核心目标(解决业务问题);2)工具技能:掌握Python(Pandas、NumPy、可视化库)、数据存储(MySQL/HDFS)及可视化工具(Tableau/Matplotlib);3)实操流程:从明确需求、数据清洗到分析建模与结果落地;4)行业场景:电商(用户行为分析)、金融(风控)、医疗(疾病预警)的应用逻辑。强调避免盲目追求复杂工具,需聚焦基础与业务结合,通过实战逐步进阶。

a28668122200的博客 586

python数据处理实战:从零打造数据分析工具与房价预测模型

在数据驱动的时代,掌握数据处理和机器学习技能已成为技术人员的必备能力。无论是从海量数据中挖掘隐藏的规律,还是利用历史数据预测未来趋势,这些技术都能为我们提供强大的支持。本文将围绕“数据处理实战”这一主题,通过两个综合案例——实现一个数据分析工具和使用机器学习预测房价,带你一步步走进数据处理的实际应用场景。文章将使用通俗易懂的语言,结合代码示例和可视化图表,帮助初学者快速上手,同时为进阶读者提供实用技巧和优化思路。本文通过两个实战案例,展示了数据处理和机器学习的完整流程。

吴师兄大模型的博客 1059
上一篇: 10个技巧让你轻松掌握使用Python pip
下一篇: Python 10大高阶调试方法:提升你的排错效率
Python_trys
博客等级 码龄2年 4369粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值