Python 操作OS、Json(内含技巧) 模块
2021-03-01 本文已影响0人
巴鶴
Python 学习笔记 https://www.jianshu.com/nb/49026514
引言
Python中 json和os模块经常使用。尤其在自动化测试中接口返回Json文件、如何转换json文件,读取字段值,本次集中学习。
Json
-
知识点:JSon转换字典
json转dict.jpg -
知识点: 遍历字典查看
遍历字典.jpg -
知识点: 字典转Json串
字典转Json.jpg -
知识点: 高级解析--遍历字典
多层嵌套Json文件.jpg
多层嵌套遍历字典.jpg
# -*- coding: utf-8 -*-
# @Time : 2021/3/1 19:08
# @File : 03_json_高级解析.py
# @Author : Yvon_早安阳光
import json
json_demo = """ {
"weixin":[
{
"name": "木青子",
"uid": "8888",
"desc": "Python"
},
{
"name": "千叶",
"uid": "6666",
"desc": "Appium"
}
],
"web":[
{
"name": "忘忧草",
"url": "www.baidu.com",
"desc": "Selenium"
},
{
"name": "花狐",
"url": "www.huahu.com",
"desc": "Django"
}
]
}"""
if __name__ == "__main__":
#将jSON串转换成字典
json_dict = json.loads(json_demo)
# print("原类型: %s" % type(json_demo))
# print("转换后的类型:", type(json_dict))
# 遍历字典
for (k, v) in json_dict.items():
# 输出第一层 K为weixin,web V为其对应的列表[]串的数据
print(k, ":", v)
for date in v:
# #遍历列表,v为[]
for (data_k, data_v) in date.items():
print(" ", data_k, " ", data_v)
高阶操作--简化遍历字典代码
遍历字典可以获取所有元素,如果我只想获取到所有的name字段值,遍历字典方法很显然不友好,代码繁琐,神操作来啦! 哈哈!!
技巧获取嵌套元素.jpg
import json
from jsonpath import jsonpath
json_demo = """ {
"weixin":[
{
"name": "木青子",
"uid": "8888",
"desc": "Python"
},
{
"name": "千叶",
"uid": "6666",
"desc": "Appium"
}
],
"web":[
{
"name": "忘忧草",
"url": "www.baidu.com",
"desc": "Selenium"
},
{
"name": "花狐",
"url": "www.huahu.com",
"desc": "Django"
}
]
}"""
if __name__ == "__main__":
#将jSON串转换成字典
json_dict = json.loads(json_demo)
# print("原类型: %s" % type(json_demo))
# print("转换后的类型:", type(json_dict))
A = jsonpath(json_dict, '$..name')[0]
print("查询第一个name: %s" % A)
names = jsonpath(json_dict, '$..name')
for name in names:
print("查询所有name: %s" %name)
OS模块
-
知识点:获取当前的工作目录
-
知识点:返回当前目录
获取目录.jpg -
知识点:创建新的文件目录--当文件已存在时,无法创建该文件
创建文件.jpg -
知识点:重命名目录
重命名文件.jpg -
知识点:删除指定目录,要注意删除的目录必须无子目录、子文件
删除目录.jpg -
知识点:改变工作目录
改变工作目录.jpg
# -*- coding: utf-8 -*-
# @Time : 2021/3/1 17:31
# @File : duqu.py
# @Author : Yvon_早安阳光
import os
if __name__ == "__main__":
#获取当前的工作目录
print('获取当前的工作目录: %s'% os.getcwd())
# 返回当前目录
print('返回当前目录: %s'%os.curdir)
# 创建新的文件目录--当文件已存在时,无法创建该文件
os.mkdir('test_mk5')
#重命名目录
os.rename('test_mk3','test_mk1')
#删除指定目录,要注意删除的目录必须无子目录、子文件
#目标删除目录必须存在,否则抛出异常
os.removedirs('test_mk2')
# 将改变至C盘
os.chdir("c:")
print('获取当前的工作目录: %s' % os.getcwd())