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

Python语言json模块详解(小白也能轻松掌握JSON数据处理)

在现代Web开发、API交互和数据存储中,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,因其简洁、易读、跨语言支持而被广泛使用。作为一门功能强大的编程语言,Python 内置了 json 模块,可以轻松地将 Python 对象与 JSON 数据相互转换。本文将围绕 Python json模块 进行详细讲解,帮助初学者快速掌握 JSON数据处理 的核心技能。

Python语言json模块详解(小白也能轻松掌握JSON数据处理) Python json模块  JSON数据处理 Python解析JSON json.dumps与json.loads 第1张

一、什么是JSON?

JSON 是一种文本格式,用于表示结构化数据。它基于 JavaScript 的对象语法,但独立于语言。一个典型的 JSON 数据如下:

{  "name": "张三",  "age": 28,  "is_student": false,  "courses": ["Python", "JavaScript", "SQL"]}

可以看到,JSON 支持字符串、数字、布尔值、数组(列表)、对象(字典)和 null(在 Python 中对应 None)。

二、Python json模块的核心函数

Python 的 json 模块提供了四个主要函数,用于在 Python 对象和 JSON 字符串之间进行转换:

  • json.dumps():将 Python 对象转换为 JSON 字符串(序列化)
  • json.loads():将 JSON 字符串转换为 Python 对象(反序列化)
  • json.dump():将 Python 对象写入文件(以 JSON 格式)
  • json.load():从文件中读取 JSON 数据并转换为 Python 对象

1. 使用 json.dumps() 序列化 Python 对象

import json# 定义一个 Python 字典data = {    "name": "李四",    "age": 25,    "is_employed": True,    "skills": ["Django", "Flask", "REST API"]}# 转换为 JSON 字符串json_str = json.dumps(data, ensure_ascii=False, indent=2)print(json_str)

输出结果:

{  "name": "李四",  "age": 25,  "is_employed": true,  "skills": [    "Django",    "Flask",    "REST API"  ]}

注意:ensure_ascii=False 可以让中文正常显示;indent=2 用于美化输出格式。

2. 使用 json.loads() 反序列化 JSON 字符串

import jsonjson_str = '{"name": "王五", "age": 30, "city": "北京"}'# 将 JSON 字符串转为 Python 字典python_obj = json.loads(json_str)print(python_obj)print(type(python_obj))  # <class 'dict'>

3. 使用 json.dump() 和 json.load() 操作文件

将数据保存到 JSON 文件:

import jsondata = {"product": "笔记本电脑", "price": 5999, "in_stock": True}with open("product.json", "w", encoding="utf-8") as f:    json.dump(data, f, ensure_ascii=False, indent=4)

从 JSON 文件读取数据:

with open("product.json", "r", encoding="utf-8") as f:    loaded_data = json.load(f)    print(loaded_data)

三、常见问题与注意事项

  • 类型映射:Python 的 dict 对应 JSON 的 object,list/tuple 对应 array,True/False/None 对应 true/false/null。
  • 编码问题:处理中文时务必设置 ensure_ascii=False,否则中文会被转义为 Unicode。
  • 异常处理:如果 JSON 格式不合法,json.loads() 会抛出 json.JSONDecodeError,建议使用 try-except 捕获。

四、总结

通过本教程,你已经掌握了 Python解析JSON 的基本方法,了解了 json.dumpsjson.loads 的使用场景,并学会了如何读写 JSON 文件。无论你是做 Web 开发、数据分析,还是调用第三方 API,Python json模块 都是你不可或缺的工具。

记住这四个关键词:Python json模块JSON数据处理Python解析JSONjson.dumps与json.loads,它们将伴随你在数据交互的道路上越走越远!

祝你编程愉快!