关于json解析
#关于json解析
with open('C:\\Users\\Administrator\\Desktop\\data.json','r')as json_file:
json_data=json_file.read()#先读取到json文件
# print(type(json_data))
# print(json_data)#
import json
py_data=json.loads(json_data)#转化为py数据
# print(type(py_data))
# print(py_data)
# print(py_data['user'][0]['name'])#虽然可以这样一层层解析,但是不易读懂,
#所以在清楚json数据的结构下,转为py数据后,应该引入类来保存和调用,方便在接口框架的用例中做断言
#将json数据中包含许多对象的键值对的键名称建一个类,json中的对象的键值对中的键名称作为整个类的实例变量。比如:
class User():
def __init__(self,id,name,age,sex,hobby):
self.id=id
self.name=name
self.age=age
self.sex=sex
self.hobby=hobby
def __str__(self):
return "id=%d,name=%s,age=%d,sex=%s,hobby=%s"%(self.id,self.name,self.age,self.sex,self.hobby)
users=[]
for key in py_data.keys():
if key=='user':
all_user_list = py_data['user']#引入一个列表来方便遍历
for user in all_user_list:
id = user['id']
name = user['name']
age = user['age']
sex = user['sex']
hobby = user['hobby']
u=User(id,name,age,sex,hobby)#这里创建py对象,将json文件中JavaScript对象转化为py对象
users.append(u)
if key=='msg':
msg=py_data[key]#看json数据结构可以知道键值msg对应的json对象只有一个,所以不用遍历
print(users[0])