上一篇
Python JSON数据保存与读取完整教程 | 实用指南
- Python
- 2025-07-23
- 1754
Python JSON数据保存与读取完整教程
掌握Python中JSON数据持久化的核心技巧,实现高效数据存储与读取
为什么使用JSON保存数据?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有以下优势:
- ✅ 人类可读的文本格式
- ✅ 语言无关的数据格式
- ✅ 支持复杂数据结构
- ✅ 广泛的应用支持
- ✅ 易于解析和生成
- ✅ 比XML更简洁高效
JSON保存数据的基本步骤
- 1 导入json模块 - Python内置库无需安装
- 2 准备Python数据结构 - 字典、列表等
-
3
打开文件进行写入 - 使用
open()
函数 - 4 使用json.dump()保存数据 - 将数据结构转换为JSON格式
保存JSON数据到文件
使用json.dump()
方法将Python数据结构保存为JSON格式:
import json
# 准备要保存的数据(Python字典)
user_data = {
"name": "张三",
"age": 28,
"is_student": False,
"courses": ["Python", "数据分析", "机器学习"],
"address": {
"city": "北京",
"postal_code": "100000"
}
}
# 将数据保存到JSON文件
with open("user_data.json", "w", encoding="utf-8") as file:
json.dump(user_data, file, ensure_ascii=False, indent=4)
print("数据已成功保存到user_data.json")
参数说明:
- ensure_ascii=False - 允许保存非ASCII字符(如中文)
- indent=4 - 使用4空格缩进,使JSON文件更易读
- encoding="utf-8" - 指定文件编码,支持多语言
从JSON文件读取数据
使用json.load()
方法读取JSON文件并转换为Python对象:
import json
# 从JSON文件读取数据
with open("user_data.json", "r", encoding="utf-8") as file:
loaded_data = json.load(file)
# 访问数据
print(f"姓名: {loaded_data['name']}")
print(f"年龄: {loaded_data['age']}")
print("课程:")
for course in loaded_data["courses"]:
print(f"- {course}")
# 输出结果:
# 姓名: 张三
# 年龄: 28
# 课程:
# - Python
# - 数据分析
# - 机器学习
处理复杂数据类型
JSON支持的数据类型有限,以下是如何处理Python特有数据类型:
日期时间处理
from datetime import datetime
import json
# 自定义日期编码器
def datetime_encoder(obj):
if isinstance(obj, datetime):
return obj.isoformat()
raise TypeError("Type not serializable")
data = {
"event": "会议",
"time": datetime.now()
}
# 保存时使用自定义编码器
with open("event.json", "w") as f:
json.dump(data, f, default=datetime_encoder)
自定义对象处理
class User:
def __init__(self, name, email):
self.name = name
self.email = email
# 自定义对象编码器
def user_encoder(obj):
if isinstance(obj, User):
return {"name": obj.name, "email": obj.email}
raise TypeError("Type not serializable")
user = User("李四", "lisi@example.com")
# 保存自定义对象
with open("user.json", "w") as f:
json.dump(user, f, default=user_encoder)
JSON最佳实践总结
编码规范
- 使用UTF-8编码
- 使用缩进提高可读性
- 避免过大的JSON文件
错误处理
- 捕获JSONDecodeError
- 处理文件不存在错误
- 验证数据结构完整性
性能优化
- 大数据集使用流式处理
- 生产环境省略indent参数
- 考虑二进制格式如MessagePack
开始使用JSON保存你的数据吧!
JSON是Python数据持久化的理想选择,简单高效且跨平台兼容
立即尝试上面的代码示例,掌握Python JSON数据存储技巧
本文由HuangfuTaoJia于2025-07-23发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20256320.html
发表评论