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文件
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中的列表或者字典数据,文件对象)保存文件
# 导包 import json
import jsonmy_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)
生成文件