Python 操作OS、Json(内含技巧) 模块

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())

推荐阅读更多精彩内容