Python编程实战 面向对象与进阶语法 JSON数据读写

在现代编程中 数据交换是不可或缺的一部分 无论是 Web 开发 接口通信 还是配置文件存储 JSON 格式都是应用最广泛的数据格式之一 Python 对 JSON 的支持非常完善 通过内置模块 json 就能轻松实现数据的序列化与反序列化

本文将带你深入理解 JSON 的概念以及在 Python 中的读写操作方法


一 什么是 JSON

JSON 全称是 JavaScript Object Notation 即 JavaScript 对象表示法 它是一种轻量级的数据交换格式 具有以下特点

  • 使用键值对存储数据 类似于 Python 的字典
  • 结构清晰 可嵌套
  • 支持多种基本数据类型
  • 语言无关 可跨平台

一个典型的 JSON 示例

json 复制代码
{
  "name": "Alice",
  "age": 25,
  "is_student": false,
  "skills": ["Python", "Java", "SQL"]
}

在 Python 中 这种结构与字典类型非常相似 因此二者可以轻松互转


二 JSON 与 Python 数据类型对应关系

JSON 类型 Python 类型
object dict
array list
string str
number int 或 float
true True
false False
null None

这种对应关系让 JSON 数据与 Python 数据结构之间的转换非常自然


三 Python JSON 模块常用方法

Python 内置的 json 模块提供了四个核心方法

方法 作用
json.dumps() 将 Python 对象转换为 JSON 字符串
json.loads() 将 JSON 字符串解析为 Python 对象
json.dump() 将 Python 对象写入 JSON 文件
json.load() 从 JSON 文件读取并转换为 Python 对象

四 Python 对象转 JSON 字符串

python 复制代码
import json

data = {
    "name": "Alice",
    "age": 25,
    "skills": ["Python", "Data Analysis"]
}

json_str = json.dumps(data, ensure_ascii=False, indent=4)
print(json_str)

输出结果

json 复制代码
{
    "name": "Alice",
    "age": 25,
    "skills": [
        "Python",
        "Data Analysis"
    ]
}

参数说明

  • ensure_ascii=False:防止中文被转义
  • indent=4:设置缩进格式 让输出更易读

五 JSON 字符串转 Python 对象

python 复制代码
import json

json_str = '{"name": "Alice", "age": 25, "skills": ["Python", "Data Analysis"]}'
data = json.loads(json_str)
print(data["name"])

输出

复制代码
Alice

六 写入 JSON 文件

将数据保存到文件非常常见 例如保存配置或用户信息

python 复制代码
import json

user = {
    "id": 1001,
    "name": "Bob",
    "vip": True,
    "balance": 99.8
}

with open("user.json", "w", encoding="utf-8") as f:
    json.dump(user, f, ensure_ascii=False, indent=4)

print("JSON 文件写入完成")

执行后 你将在当前目录生成一个名为 user.json 的文件


七 从文件中读取 JSON 数据

python 复制代码
import json

with open("user.json", "r", encoding="utf-8") as f:
    user_info = json.load(f)

print(user_info)
print(type(user_info))

输出

python 复制代码
{'id': 1001, 'name': 'Bob', 'vip': True, 'balance': 99.8}
<class 'dict'>

说明从文件中读取的 JSON 已成功转换为 Python 字典对象


八 实战 案例 读取配置文件并修改

假设我们有一个配置文件 config.json

json 复制代码
{
  "version": "1.0",
  "debug": true,
  "users": ["admin", "guest"]
}

我们想读取其中内容 并更新某些字段

python 复制代码
import json

# 读取配置
with open("config.json", "r", encoding="utf-8") as f:
    config = json.load(f)

# 修改参数
config["debug"] = False
config["users"].append("developer")

# 保存回文件
with open("config.json", "w", encoding="utf-8") as f:
    json.dump(config, f, ensure_ascii=False, indent=4)

print("配置文件已更新")

九 异常处理与健壮性

在处理 JSON 文件时 可能会遇到文件缺失或格式错误 可以使用 try...except 捕获异常

python 复制代码
import json

try:
    with open("data.json", "r", encoding="utf-8") as f:
        data = json.load(f)
except FileNotFoundError:
    print("文件未找到")
except json.JSONDecodeError:
    print("JSON 格式错误")
else:
    print("读取成功")

十 小结

JSON 是 Python 与外部世界交互的桥梁 无论是 API 通信 还是数据存储 JSON 都是最常见也最重要的数据格式之一

学习要点

  • 使用 json.dumps()json.loads() 实现内存中数据的转换
  • 使用 json.dump()json.load() 操作文件
  • 养成使用 with open() 的好习惯
  • 处理异常 提高代码健壮性

掌握 JSON 数据读写后 你已经具备处理各种接口数据与配置文件的能力 这将在实际项目中为你带来巨大的便利

相关推荐
鸽芷咕14 分钟前
DrissionPage 成 CANN 仓库爆款自动化工具:背后原因何在?
运维·python·自动化·cann
爱学习的阿磊16 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
少云清35 分钟前
【金融项目实战】7_接口测试 _代码实现接口测试(重点)
python·金融项目实战
深蓝电商API36 分钟前
爬虫IP封禁后的自动切换与检测机制
爬虫·python
m0_5500246338 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
80530单词突击赢1 小时前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
B站_计算机毕业设计之家1 小时前
豆瓣电影数据采集分析推荐系统 | Python Vue Flask框架 LSTM Echarts多技术融合开发 毕业设计源码 计算机
vue.js·python·机器学习·flask·echarts·lstm·推荐算法
渣渣苏1 小时前
Langchain实战快速入门
人工智能·python·langchain
爬山算法1 小时前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
lili-felicity1 小时前
CANN模型量化详解:从FP32到INT8的精度与性能平衡
人工智能·python