接口测试

[PPJ_03] JSON数据解析 & 文件处理

2018-10-03  本文已影响50人  Fighting_001

目录结构

一、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语法

语法规则:

3. JSON值的类型

1)JSON数字

"status_code":200

2)JSON字符串

"city":"Chengdu"

3)JSON逻辑值

"result":true

4)JSON数组

"user":["test00001","test00002","test00003"]

5)JSON对象
JSON对象在花括号{}中书写,对象可以包含多个键/值对:

{"firstlane":"John","lastlame":"Doe")

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

6)JSON数据嵌套
比如在数组中含多个对象:

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

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

二、JSON数据解析

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

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'}

参考资料:
[1] JSON库官方文档-JSON encoder and decoder

上一篇下一篇

猜你喜欢

热点阅读