python如何通过Json路径返回Json响应对应的值

 更新时间:2024年06月27日 14:27:59   作者:梓沫1119  
这篇文章主要介绍了python如何通过Json路径返回Json响应对应的值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

通过Json路径返回Json响应对应的值

最近做一个接口自动化项目时,需要根据Json响应体的路径来取出对应的值。

Json体有不同的层级结构,在Python中,类似于字典包数组或数组包字典的组合。

那知道了Json值的路径,怎么去拿到值呢。

话不多说,上代码

class PathValue:
    def __init__(self, json_res, value_path):
        """
        通过json路径找到需要的值,并存入一个全局字典
        :param json_res: json响应
        :param value_path: 取值路径
        """
        self.json_res = json_res
        self.value_path = value_path

    def path_value_dic(self):
        """
        如果存在多个值,使用,分隔value_path
        :return:
        """
        l_path = self.value_path.split(",")
        for path in l_path:
            self.json_path_value(self.json_res, path)

    def json_path_value(self, d, s):
        """
        根据传入的json路径从响应中取值,存入dic,主要运用了递归函数
        :param d: 响应Json
        :param s: Json路径
        :return: 存入值的字典dic
        """
        pahts = s.split(".")
        if len(pahts) == 1:
            dic[pahts[0]] = d[pahts[0]]
            return
        for p in pahts:
            if p.isnumeric():
                a = d[int(p)]
                return self.json_path_value(a, '.'.join(pahts[1:]))
            a = d[p]
            return self.json_path_value(a, '.'.join(pahts[1:]))


if __name__ == '__main__':
    dic = {}
    d1 = {
        "page": 1,
        "total": 919,
        "items": [
            {
                "csku": "1099688",
                "rsku": "6992044",
            }
        ],
    }
    s_path = 'items.0.csku,items.0.rsku'
    # s_path = 'items.0.csku'
    p = PathValue(d1, s_path)
    p.path_value_dic()
    print(dic)

以上代码,直接跑,可将需要取的值存入一个字典。

具体想怎么存怎么使用,就各自发挥了~

Python:返回json数据

安装json库

pip install json
conda install json

在Python中,你可以使用内置的json模块来返回一个JSON数据。以下是一个简单的例子:

示例

import json  
  
def get_json():  
    data = {  
        "name": "John",  
        "age": 30,  
        "city": "New York"  
    }  
    return json.dumps(data)  
  
# 调用函数并打印返回的JSON数据  
print(get_json())

在这个例子中,首先导入了json模块。

然后定义了一个名为get_json的函数,该函数返回一个字典。

我们使用json.dumps()函数将这个字典转换为一个JSON字符串,然后返回这个字符串。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Python中datetime库的使用

    详解Python中datetime库的使用

    这篇文章主要介绍了Python中datetime库的使用,它提供了一系列由简单到复杂的时间处理方法。datetime 库可以从系统中获得时间,并以用户选择的格式输出,需要的朋友可以参考下
    2023-04-04
  • python实现简单的计时器功能函数

    python实现简单的计时器功能函数

    这篇文章主要介绍了python实现简单的计时器功能函数,涉及Python操作时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 一个Python优雅的数据分块方法详解

    一个Python优雅的数据分块方法详解

    在做需求过程中有一个对大量数据分块处理的场景,具体来说就是几十万量级的数据,分批处理,每次处理100个。这时就需要一个分块功能的代码。本文为大家分享了一个Python中优雅的数据分块方法,需要的可以参考一下
    2022-05-05
  • 详解Python if-elif-else知识点

    详解Python if-elif-else知识点

    本篇文章给大家总结了Python中if-elif-else的相关知识点以及语法相关内容,有兴趣的朋友参考学习下。
    2018-06-06
  • python django 实现验证码的功能实例代码

    python django 实现验证码的功能实例代码

    本篇文章主要介绍了python django 实现验证码的功能实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Python实现计算两个指定日期相差几年几月几日

    Python实现计算两个指定日期相差几年几月几日

    这篇文章主要为大家详细介绍了如何使用Python实现计算两个日期之间相差多少年,多少月,多少天,文中的的示例代码讲解详细,需要的可以参考下
    2024-02-02
  • Python 进程之间共享数据(全局变量)的方法

    Python 进程之间共享数据(全局变量)的方法

    今天小编就为大家分享一篇Python 进程之间共享数据(全局变量)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python批量处理文件或文件夹

    python批量处理文件或文件夹

    这篇文章主要为大家详细介绍了python批量处理文件或文件夹,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • django实现将后台model对象转换成json对象并传递给前端jquery

    django实现将后台model对象转换成json对象并传递给前端jquery

    这篇文章主要介绍了django实现将后台model对象转换成json对象并传递给前端jquery,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

    python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

    这篇文章主要介绍了python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点),具有一定的学习价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-04-04

最新评论