9.6 JSON 基本操作


文章目录

  • 前言
  • [一、JSON与Python json模块简介](#一、JSON与Python json模块简介)
  • 二、json模块常用方法
    • [2.1 dumps:将 Python 对象转为 JSON 字符串](#2.1 dumps:将 Python 对象转为 JSON 字符串)
    • [2.2 dump:将 Python 对象直接写入文件](#2.2 dump:将 Python 对象直接写入文件)
    • [2.3 loads:将 JSON 字符串转为 Python 对象](#2.3 loads:将 JSON 字符串转为 Python 对象)
    • [2.4 load:从文件类对象直接读取并转换](#2.4 load:从文件类对象直接读取并转换)

前言

本文主要介绍Python json模块简介及常用方法。


一、JSON与Python json模块简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,结构清晰、易于阅读和编写,能够有效提升网络传输效率。Python 内置的 json 模块提供了一系列方法,用于处理 JSON 格式数据的编码与解码。

二、json模块常用方法

json 模块主要包含 dump、dumps、load、loads 四种核心方法,用于实现 JSON 数据与 Python 对象之间的相互转换。

2.1 dumps:将 Python 对象转为 JSON 字符串

dumps() 方法可将 Python 对象转换为 JSON 格式字符串。例如,将字典转换为 JSON 字符串:

python 复制代码
python
import json

data = {'id': '001', 'name': '张三', 'age': '20'}
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)

输出结果:

bash 复制代码
text
{"id": "001", "name": "张三", "age": "20"}

若需格式化输出,可添加参数控制格式:

python 复制代码
python
json_str = json.dumps(
    data, 
    ensure_ascii=False, 
    sort_keys=True, 
    indent=4, 
    separators=(',', ': ')
)

输出结果:

bash 复制代码
json
{
    "age": "20",
    "id": "001",
    "name": "张三"
}

Python 对象与 JSON 类型对应关系

Python JSON
dict object
list, tuple array
str string
int, float, 枚举类 number
True true
False false
None null

将 JSON 字符串写入文件

python 复制代码
python
with open('test.json', 'w', encoding='utf-8') as f:
    f.write(json_str)

2.2 dump:将 Python 对象直接写入文件

dump() 方法可将 Python 对象序列化为 JSON 格式并直接写入文件类对象:

python 复制代码
python
with open('test.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

该方法适用于直接将数据保存为 JSON 文件的场景。若需将数据转换为字符串(如存入数据库),则应使用 dumps()。

2.3 loads:将 JSON 字符串转为 Python 对象

loads() 方法用于将 JSON 格式字符串转换为 Python 对象:

python 复制代码
python
json_str = '{"id": "001", "name": "张三", "age": "20"}'
data_dict = json.loads(json_str)
print(data_dict)

输出结果:

bash 复制代码
text
{'id': '001', 'name': '张三', 'age': '20'}

JSON 类型与 Python 对象对应关系

JSON Python
object dict
array list
string str
number(int) int
number (real) float
true True
false False
null None

读取 JSON 文件并转换为 Python 对象

python 复制代码
python
with open('test.json', encoding='utf-8') as f:
    data = f.read()
    print(json.loads(data))

2.4 load:从文件类对象直接读取并转换

load() 方法可直接从文件类对象中读取数据并转换为 Python 对象:

python 复制代码
python
with open('test.json', encoding='utf-8') as f:
    data_dict = json.load(f)
    print(data_dict)

该方法与 loads() 的区别在于:load() 接收文件对象作为参数,而 loads() 接收字符串参数。


相关推荐
zm-v-1593043398619 分钟前
Python 数据挖掘从入门到精通:回归 / 分类 / 聚类 / 关联分析完整教程
python·数据挖掘·回归
qq_417695056 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水6 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
yy我不解释6 小时前
关于comfyui的mmaudio音频生成插件时时间不一致问题(一)
python·ai作画·音视频·comfyui
紫丁香8 小时前
AutoGen详解一
后端·python·flask
FreakStudio8 小时前
不用费劲编译ulab了!纯Mpy矩阵micronumpy库,单片机直接跑
python·嵌入式·边缘计算·电子diy
清水白石00810 小时前
Free-Threaded Python 实战指南:机遇、风险与 PoC 验证方案
java·python·算法
飞Link10 小时前
具身智能核心架构之 Python 行为树 (py_trees) 深度剖析与实战
开发语言·人工智能·python·架构
桃气媛媛10 小时前
Pycharm常用快捷键
python·pycharm
Looooking11 小时前
Python 之获取安装包所占用磁盘空间大小
python