python 解析多层级的json数据

#! /usr/bin/env pyhton
# -*- coding:utf-8 -*-
# author:jeff.xie
# datetime:2024/2/2 14:03
# software:PyCharm


import json

def get_case_name_status(path):
    # 读取json文件
    with open(path, 'r', encoding='utf-8') as f:
        data = json.load(f)

    # 解析json数据
    function_name = data["name"]
    print(function_name)

    status = data["testStage"]["status"]   # 解析 testStage对应json内容,取status对应的值
    case_name = data["testStage"]["steps"][0]["name"]
    # 解析 testStage对应json内容,取steps对应的json数据的第一个json数据,取name对应的值
    print(status)
    print(case_name)


if __name__ == '__main__':
    path = 'case_status.json'
    get_case_name_status(path)

Json文件内容

{
  "uid" : "3bd701331fbd1356",
  "name" : "test_05",
  "fullName" : "testcases.test_weather.Test_weather#test_05",
  "historyId" : "04bdebd4cda63fb0e230d98dbfff4f7f",
  "time" : {
    "start" : 1706839388327,
    "stop" : 1706839388479,
    "duration" : 152
  },
  "status" : "passed",
  "flaky" : false,
  "beforeStages" : [ {
    "name" : "_xunit_setup_class_fixture_Test_weather",
    "time" : {
      "start" : 1706839388326,
      "stop" : 1706839388326,
      "duration" : 0
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  } ],
  "testStage" : {
    "status" : "passed",
    "steps" : [ {
      "name" : "获取上海天气",
      "time" : {
        "start" : 1706839388327,
        "stop" : 1706839388479,
        "duration" : 152
      },
      "status" : "passed",
      "steps" : [ ],
      "attachments" : [ ],
      "parameters" : [ ],
      "hasContent" : false,
      "stepsCount" : 0,
      "attachmentsCount" : 0,
      "shouldDisplayMessage" : false
    } ],
    "attachments" : [ {
      "uid" : "58a67a26a5822186",
      "name" : "log",
      "source" : "58a67a26a5822186.txt",
      "type" : "text/plain",
      "size" : 242
    } ],
    "parameters" : [ ],
    "hasContent" : true,
    "stepsCount" : 1,
    "attachmentsCount" : 1,
    "shouldDisplayMessage" : false
  },
  "afterStages" : [ {
    "name" : "_xunit_setup_class_fixture_Test_weather::0",
    "time" : {
      "start" : 1706839388797,
      "stop" : 1706839388798,
      "duration" : 1
    },
    "status" : "passed",
    "steps" : [ ],
    "attachments" : [ ],
    "parameters" : [ ],
    "hasContent" : false,
    "stepsCount" : 0,
    "attachmentsCount" : 0,
    "shouldDisplayMessage" : false
  } ],
  "labels" : [ {
    "name" : "severity",
    "value" : "trivial"
  }, {
    "name" : "parentSuite",
    "value" : "testcases"
  }, {
    "name" : "suite",
    "value" : "test_weather"
  }, {
    "name" : "subSuite",
    "value" : "Test_weather"
  }, {
    "name" : "host",
    "value" : "QH20121401L"
  }, {
    "name" : "thread",
    "value" : "5420-MainThread"
  }, {
    "name" : "framework",
    "value" : "pytest"
  }, {
    "name" : "language",
    "value" : "cpython3"
  }, {
    "name" : "package",
    "value" : "testcases.test_weather"
  }, {
    "name" : "resultFormat",
    "value" : "allure2"
  } ],
  "parameters" : [ ],
  "links" : [ {
    "name" : "https://www.baidu.com",
    "url" : "https://www.baidu.com",
    "type" : "issue"
  } ],
  "hidden" : false,
  "retry" : false,
  "extra" : {
    "severity" : "trivial",
    "retries" : [ ],
    "categories" : [ ],
    "tags" : [ ]
  },
  "source" : "3bd701331fbd1356.json",
  "parameterValues" : [ ]
}

相关推荐

  1. python 解析json数据

    2024-02-05 09:24:05       34 阅读
  2. @Validated校验json

    2024-02-05 09:24:05       13 阅读
  3. python 解析json

    2024-02-05 09:24:05       16 阅读
  4. Python scapy 构建嵌套数据包

    2024-02-05 09:24:05       27 阅读
  5. Qt解析json格式数据

    2024-02-05 09:24:05       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-05 09:24:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-05 09:24:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-05 09:24:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-05 09:24:05       20 阅读

热门阅读

  1. MySQL分区的优缺点

    2024-02-05 09:24:05       29 阅读
  2. 详解 Spring Boot 条件装配

    2024-02-05 09:24:05       29 阅读
  3. 在CentOS 7中使用Python 3执行系统命令

    2024-02-05 09:24:05       35 阅读
  4. Adobe Illustrator CEP插件开发入门指南

    2024-02-05 09:24:05       31 阅读
  5. 字符串拼接+和+=的执行过程

    2024-02-05 09:24:05       34 阅读
  6. 手机常亮屏不自动灭屏

    2024-02-05 09:24:05       92 阅读
  7. 【Golang】exec.command命令日志输出示例

    2024-02-05 09:24:05       31 阅读
  8. pandas学习一

    2024-02-05 09:24:05       30 阅读
  9. el-button新的type可选值

    2024-02-05 09:24:05       30 阅读
  10. 开源文化的未来:面临的挑战与机遇(AI)

    2024-02-05 09:24:05       30 阅读