3.JSON数据解析

本文介绍了JSON的基本概念和语法,包括数据类型,如数字、字符串、对象和数组。详细讲解了Python中如何将数据类型转换为JSON以及反向转换,并通过json.dumps()和json.loads()函数进行了说明。此外,还讨论了JSON文件的读写操作,利用json.dump()和json.load()函数实现了数据的存储和读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文概要目录

一、JSON简介
    1. JSON概念
    2. JSON语法
    3. JSON值的类型
二、JSON数据解析
    1. Python数据类型 ==> Json数据类型
    2. Json数据类型 ==> Python数据类型
三、JSON文件处理
    1. 将JSON数据写入到文件中
    2. 从JSON文件中读取数据

一、JSON简介

1. JSON概念

JSON:(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言。JSON具有自我描述性,很容易理解。目前大多数接口返回的数据格式为JSON,因此进行接口测试必须掌握JSON

2. JSON语法

语法规则:
  • 数据在键/值对中
  • 数据由逗号分隔
  • 花括号{}保存对象
  • 方括号[]保存数组
  • JSON键/值对-书写格式:key:value ;如:"name":"Bob"
3. JSON值的类型
  • 数字(整数or浮点数) "status_code":200
  • 字符串(在双引号""中) "city":"Chengdu"
  • 逻辑值(true / false) "result":true
  • 数组(在方括号[]中) "user":["test00001","test00002","test00003"]
  • 对象(在花括{}中) {"firstlane":"John","lastlame":"Doe")
  • null

PS:在接口测试过程中,一般都是返回JSON对象类型。
JSON数据嵌套

{
"cmployees":[
{"firstName":"John","lastlame":"Doe"},
{"firstName":"Anna","lastlame":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
}

在上面的例子中,对象"employees"是包含3个对象的数组,每个对象代表1条关于某人(firstName+lastName)的记录。

二、JSON数据解析

Python3可使用json模块对JSON数据进行编码和解码,包含有2个方法:

  • json.dumps:Python数据类型–>Json数据类型
  • json.loads:Json数据类型–>Python数据类型

1. Python数据类型 ==> Json数据类型

json.dumps() 函数

# 导入json
import json

# 定义一个字典变量data
data = {'id':1,'name':'test00001','password':'123456'}

# 打印data的数据类型
print(type(data))

# 定义变量,将Python数据转换为JSON数据,存储到该变量
json_str = json.dumps(data)

# 打印转换后的数据类型
print(type(json_str))

# 打印转换后的数据内容
print(json_str)

执行结果:

<class 'dict'>
<class 'str'>
{"id": 1, "name": "test00001", "password": "123456"}

从上通俗理解:
json.dumps() 函数实现:字典(dict) ==> 字符串(str)

2. Json数据类型 ==> Python数据类型

json.loads() 函数

import json

# 定义json类型的字符串
json_str = '{"id":1,"name":"test00001","password":"123456"}'

# 将Json类型转换为Python类型,存储到data变量中
data = json.loads(json_str)

print(type(json_str))   # 打印转换前的数据类型
print(type(data))   # 打印转换后的数据类型
print(data) # 打印转换后的数据内容
print(data['id'])
print(data['name'])

执行结果:

<class 'str'>
<class 'dict'>
{'id': 1, 'name': 'test00001', 'password': '123456'}
1
test00001

从上通俗理解:
json.loads() 函数实现:字符串(str) ==> 字典(dict)

三、JSON文件处理

使用场景:将JSON数据写入到文件中,or从JSON文件中读取数据

1. 将JSON数据写入到文件中

json.dump() 函数

import json

# Python数据-->JSON数据
data = {'id':1,'name':'test00001','password':'123456'}
json_str = json.dumps(data)

# 写入json数据到指定文件中(无则创建)
with open('data.json','w') as f:
    json.dump(data,f)

执行结果:
在当前目录下创建了一个json格式文件data.json,并将其前转换的json数据写入到了该文件中

2. 从JSON文件中读取数据

json.load() 函数

import json

# 从data.json文件中读取JSON数据
with open('data.json','r') as f:
    data = json.load(f)
    print(data)

执行结果:

{'id': 1, 'name': 'test00001', 'password': '123456'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值