当前位置: 首页 > news >正文

️ Python JSON/XML数据处理完全指南:从入门到实战

数据交换格式是现代应用开发的核心。本文将深入讲解Python中JSON和XML数据的处理方法,从基础解析到实际应用场景。

📌 JSON数据处理

JSON (JavaScript Object Notation) 是轻量级的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。

1. JSON基础

import json# JSON字符串示例
json_str = '''
{"name": "Alice","age": 25,"is_student": false,"courses": ["Python", "JavaScript", "Go"],"address": {"city": "Beijing","zipcode": "100000"}
}
'''

2. JSON解析 (loads)

import json# JSON字符串转Python对象
json_str = '{"name": "Alice", "age": 25}'
data = json.loads(json_str)print(data["name"])       # Alice
print(data["age"])        # 25
print(type(data))         # <class 'dict'># 处理JSON数组
json_array = '[1, 2, 3, "hello"]'
items = json.loads(json_array)
print(items)              # [1, 2, 3, 'hello']

3. JSON序列化 (dumps)

import json# Python对象转JSON字符串
data = {"name": "Bob","age": 30,"skills": ["Python", "Go"]
}# 基础序列化
json_str = json.dumps(data)
print(json_str)
# {"name": "Bob", "age": 30, "skills": ["Python", "Go"]}# 美化输出
pretty_json = json.dumps(data, indent=2, ensure_ascii=False)
print(pretty_json)

4. 文件读写

import json# 写入JSON文件
data = {"users": [{"name": "Alice"}, {"name": "Bob"}]}with open("data.json", "w", encoding="utf-8") as f:json.dump(data, f, indent=2, ensure_ascii=False)# 读取JSON文件
with open("data.json", "r", encoding="utf-8") as f:loaded_data = json.load(f)print(loaded_data["users"])

5. 处理特殊类型

import json
from datetime import datetime# 自定义JSON编码器
class CustomEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.strftime("%Y-%m-%d %H:%M:%S")return super().default(obj)# 使用自定义编码器
data = {"name": "Event","time": datetime.now()
}json_str = json.dumps(data, cls=CustomEncoder)
print(json_str)

📋 XML数据处理

XML (eXtensible Markup Language) 是一种标记语言,常用于配置文件和数据交换。

1. ElementTree基础

import xml.etree.ElementTree as ET# XML字符串
xml_data = '''
<library><book id="1"><title>Python编程</title><author>张三</author><price>59.99</price></book>
</library>
'''# 解析XML
root = ET.fromstring(xml_data)

2. 遍历XML元素

import xml.etree.ElementTree as ETroot = ET.fromstring(xml_data)# 遍历所有book元素
for book in root.findall("book"):book_id = book.get("id")title = book.find("title").textauthor = book.find("author").textprice = book.find("price").textprint(f"ID: {book_id}, 标题: {title}")

3. XML文件读写

import xml.etree.ElementTree as ET# 创建XML树
root = ET.Element("config")
server = ET.SubElement(root, "server")
ET.SubElement(server, "host").text = "localhost"
ET.SubElement(server, "port").text = "8080"# 写入文件
tree = ET.ElementTree(root)
tree.write("config.xml", encoding="utf-8", xml_declaration=True)

📊 对比总结

特性JSONXML
可读性 ★★★★★ ★★★☆☆
文件大小
解析速度 较慢
数据类型 支持 需转换

🎯 最佳实践

  1. API开发: 优先使用JSON,更轻量、解析更快
  2. 配置文件: JSON适合简单配置,XML适合复杂层次结构
  3. 错误处理: 始终使用try-except处理解析异常

掌握JSON和XML处理是Python开发的必备技能!💪

本文内容部分由AI辅助生成,经人工审核整理。

http://www.jsqmd.com/news/525962/

相关文章:

  • 小龙虾到底怎么设计的?技术人来看看这个深度解析:一张图拆解OpenClaw的Agent核心设计。
  • YOLOE官版镜像实操案例:YOLOE-v8s模型在Jetson Orin上的边缘部署
  • 车载以太网MACsec:构建安全通信的密钥体系与实战部署
  • 别再手动复位了!深度解析Keil连接STM32的‘非正版设备’错误与两种屏蔽方案
  • OFA视觉蕴含模型部署教程:无GPU环境CPU推理性能实测
  • 隐私优先的AI上色方案:cv_unet_image-colorization本地化部署教程
  • Cortex-M 系统异常优先级深度剖析:PendSV、SVCall、SysTick 对 RTOS 的影响
  • SPI协议实战:如何用Arduino Uno配置CPOL和CPHA模式(附示波器截图)
  • 从零开始:Ryujinx Switch模拟器完整指南
  • Quartus II 13.1 保姆级教程:手把手教你从零搭建四选一多路选择器(附完整仿真流程)
  • cv_resnet101_face-detection模型Java集成实战:SpringBoot微服务调用指南
  • uCharts真机调试踩坑指南:canvasId不能动态绑定的秘密
  • Qwen3-VL-8B优化技巧:图片大小、提示词怎么写?提升效果的小秘诀
  • UNIT-00模型处理复杂时序数据:LSTM对比与增强案例
  • 很多人都在学 Claude Code 技巧,但真正值钱的是这套方法论
  • Qwen3-Reranker Semantic Refiner效果展示:真实文档集重排序得分可视化集
  • 第 4 章 配置文件体系详解(OpenOCD)
  • HiOmics云平台GSEA富集分析实战:从数据上传到结果解读(附R代码调试技巧)
  • 从PAT考试看程序设计:盲文数字识别与字符串存储的实战技巧
  • 从0到1构建专业量化交易系统:VeighNa框架实战指南
  • 吵翻了!TP-Link 创始人申请“特朗普金卡”引热议。有些大骂反对,有些理解祝成功
  • 基于GitHub工作流的FLUX小红书极致真实V2模型持续集成
  • 2026年知名的四川大型锻件公司推荐:四川大型锻件厂家精选 - 品牌宣传支持者
  • 单细胞数据分析进阶:如何用Harmony整合GSE163558多样本数据
  • 2026香辣卤味加盟推荐榜:香辣曹氏鸭脖加盟条件/香辣曹氏鸭脖加盟流程/香辣曹氏鸭脖加盟电话/香辣曹氏鸭脖加盟费/选择指南 - 优质品牌商家
  • BEYOND REALITY Z-Image实际作品:支持多人同框(2-4人)且保持个体肤质一致性
  • Win11系统TrafficMonitor启动失败的常见问题及解决方案
  • UOS Server 20下MLNX_OFED驱动编译踩坑实录:从fput缺失到成功安装的全过程
  • Stable Yogi Leather-Dress-Collection 实战案例:为智能车内饰提供皮革设计方案
  • ️ Python类型注解完全指南:从入门到精通的类型提示艺术