三十六、Python基础语法(JSON操作)

JSON(JavaScript Object Notation)是一种基于文本,轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成,在自动化测试中经常用来存放测试数据。

JSON的特点:

  • 基于文本,不包含图片、音视频

  • 轻量级,定义相同数据量,JSON占用文件比较小

  • 独立于语言,所有编程语言都可以使用的

  • 数据交换格式,前端和后端的数据交互格式

一、JSON语法

一个 JSON 对象是一组无序的键值对集合,用花括号括起来。键必须是字符串,用双引号括起来;值可以是字符串、数字、布尔值、对象、数组或 null。{"name":"Alice","age":30,"isStudent":false}

一个 JSON 数组是一组有序的值的集合,用方括号括起来。值可以是字符串、数字、布尔值、对象、数组或 null。"apple","banana","orange" 或者 {"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}

1.键值对

1.键(Key)

  • 键是字符串类型,用于标识对象中的属性。

  • 键必须是唯一的,且区分大小写。

2.值(Value)

值可以是上述任何一种数据类型,与键对应。

2.语法规则

1.分隔符

  • 对象中的键值对用逗号分隔。

  • 数组中的值也用逗号分隔。

2.空白符

  • JSON 对空白符(如空格、制表符、换行符)不敏感,但适当的空白可以增加 JSON 文本的可读性。

例子

复制代码
{
  "students": [
    {
      "name": "张三",
      "age": 20,
      "grades": [85, 90, 78]
    },
    {
      "name": "李四",
      "age": 21,
      "grades": [92, 88, 95]
    }
  ],
  "schoolName": "Example School",
  "isOpen": true
}

三、JSON文件读取

导入json包,用已读方式打开json文件,获取json文件对象,使用**json.load(文件对象)**来读取json文件得到列表或者字典

定义一个json文件

复制代码
{
  "name": "Layne",
  "age": 25,
  "hobbies": ["reading", "painting"]
}

读取这个json文件

python 复制代码
import json

# 打开并读取 JSON 文件
with open('data.json', 'r', encoding='utf-8') as file:
    data = json.load(file)

# 打印读取到的数据
print(data)
print("Name:", data["name"])
print("Age:", data["age"])
print("Hobbies:", data["hobbies"])

四、JSON的写入

json写入:是指将python中的字典或者列表直接写入json文件,导入json包,使用'w'打开文件,使用**json.dump(Python中的列表或者字典数据,文件对象)**保存文件

python 复制代码
# 导包 import json
import json

my_dict = {'name': "Layne", "age": 25, "like": ["学习", "羽毛球", "吃饭"]}
# 只写'w'打开文件
with open('info.json', 'w', encoding='utf-8') as file:
    # 使用json.dump(Python中的列表或者字典数据,文件对象)保存文件
    # 禁用ascii编码,解决中文乱码问题 关键字传参要放在
    # indent=2 自动添加4个空格缩进
    json.dump(my_dict, file, ensure_ascii=False, indent=2)

生成文件

相关推荐
兵慌码乱1 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵2 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio6 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663677 小时前
使用 Python 从零创建 Word 文档
python
Csvn12 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽13 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175315 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
疯狂SQL15 小时前
手写高性能在线 JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
typescript·json·next.js·web worker·前端性能优化·esbuild·源码实战
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python