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常用的编程模块

    聊一聊python常用的编程模块

    好久没用写文章了,动起笔来真不知道写点啥来,好吧,今天就给大家分享一些python常用的编程模块吧,包括文件流的读写及如何删除str中的特定字符,感兴趣的朋友跟随一起学习下吧
    2021-05-05
  • 在Python中使用zlib模块进行数据压缩的教程

    在Python中使用zlib模块进行数据压缩的教程

    这篇文章主要介绍了在Python中使用zlib模块进行数据压缩的教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • Alpine安装Python3依赖出现的问题及解决方法

    Alpine安装Python3依赖出现的问题及解决方法

    这篇文章主要介绍了Alpine安装Python3依赖出现的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • python基础教程之五种数据类型详解

    python基础教程之五种数据类型详解

    这篇文章主要介绍了python基础教程之五种数据类型详解的相关资料,这里对Python 的数据类型进行了详细介绍,需要的朋友可以参考下
    2017-01-01
  • Python中mmap模块处理大文本的操作方法

    Python中mmap模块处理大文本的操作方法

    这篇文章主要介绍了Python中mmap模块(处理大文本),将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存映射读写取代I/O缓存读写,以获得较高的性能,需要的朋友可以参考下
    2023-02-02
  • Win8下python3.5.1安装教程

    Win8下python3.5.1安装教程

    这篇文章主要为大家详细介绍了Win8下python3.5.1安装教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Python 实现选择排序的算法步骤

    Python 实现选择排序的算法步骤

    下面小编就为大家分享一篇Python 实现选择排序的算法步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python中format()函数的简单使用教程

    python中format()函数的简单使用教程

    python中format函数用于字符串的格式化,接下来通过本文给大家介绍python中format()函数的简单使用教程,一起看看吧
    2018-03-03
  • python代码的几种常见加密方式分享

    python代码的几种常见加密方式分享

    这篇文章主要介绍了python代码的几种常见加密方式分享,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • pytorch报错问题:ValueError: num_samples should be a positive integer value, but got num_samples=0

    pytorch报错问题:ValueError: num_samples should be

    这篇文章主要介绍了pytorch报错问题:ValueError: num_samples should be a positive integer value, but got num_samples=0的解决方案,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论