目录
  • 通过Json路径返回Json响应对应的值
  • 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字符串,然后返回这个字符串。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持小闻网。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。