Json

313 阅读1分钟

1.Json是什么?

Json是JavaScript Object Notation的缩写,是javascprit对象标记

Json是一种轻量级的数据交换格式

Json字符串格式:{"useranme":"ssss","age":14}

2.json的反序列化(json与Python之间的转换关系)

python 原始类型向 json 类型的转化对照表:

json | python
object dict
array list
string str
number int
number float
true True
flase False
null None

例子1:json如果是字符串object则转换成python里的字典dict

import json
json_str='{"useranme":"ssss","age":14}'
s=json.loads(json_str)
print(type(s))------dict
print(s)----------------{'useranme':'ssss','age':14}

例子2:json如果是个数组对应python里是list

import json
json_arry='[{"useranme":"ssss","age":14},{"useranme":"ereee","age":17}]'
s=json.loads(json_arry)
print(type(s))------list
print(s)----------------[{'useranme':'ssss','age':14},{'useranme':'ereee','age':17}]

3.json的序列化(python的数据类型向json转换)

import json
user=[
        {'useranme':'ssss','age':14},
        {'useranme':'ereee','age':17}
]
json_str=json.dumps(user)
print(type(json_str))----------------str
print(json_str)---------------[{"useranme":"ssss","age":14},{"useranme":"ereee","age":17}]

4.如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:

# 写入 JSON 数据
with open('data.json', 'w') as f:
    json.dump(data, f)
 
# 读取数据
with open('data.json', 'r') as f:
    data = json.load(f)

5.接口自动化测试中通常存在依赖情况:case_02的请求参数的值,需要依赖case_01返回结果中某个字段的数据,所以就先需要拿到返回数据中依赖字段的值。这里使用到python中jsonpath-rw库

#首先pip3 install jsonpath-rw
from jsonpath_rw import jsonpath,parse
jsonpath_expr = parse('foo[*].baz')
data = {'foo': [{'baz': 'news'}, {'baz': 'music'}]}
print([match.value for match in jsonpath_expr.find(data)])---------['news', 'music']
运行结果:['news', 'music']
['news', 'music']
#match.value返回数据是一个list,我们要获取特定的值
print([match.value for match in jsonpath_expr.find(data)][0])------------news