广告位联系
返回顶部
分享到

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

python 来源:互联网 作者:佚名 发布时间:2024-06-27 21:41:42 人浏览
摘要

通过Json路径返回Json响应对应的值 最近做一个接口自动化项目时,需要根据Json响应体的路径来取出对应的值。 Json体有不同的层级结构,在Python中,类似于字典包数组或数组包字典的组合。 那

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

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

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

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

话不多说,上代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

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库

1

2

pip install json

conda install json

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

示例

1

2

3

4

5

6

7

8

9

10

11

12

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字符串,然后返回这个字符串。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计