欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何通過Json路徑返回Json響應(yīng)對應(yīng)的值

 更新時(shí)間:2024年06月27日 14:27:59   作者:梓沫1119  
這篇文章主要介紹了python如何通過Json路徑返回Json響應(yīng)對應(yīng)的值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

通過Json路徑返回Json響應(yīng)對應(yīng)的值

最近做一個(gè)接口自動(dòng)化項(xiàng)目時(shí),需要根據(jù)Json響應(yīng)體的路徑來取出對應(yīng)的值。

Json體有不同的層級結(jié)構(gòu),在Python中,類似于字典包數(shù)組或數(shù)組包字典的組合。

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

話不多說,上代碼

class PathValue:
    def __init__(self, json_res, value_path):
        """
        通過json路徑找到需要的值,并存入一個(gè)全局字典
        :param json_res: json響應(yīng)
        :param value_path: 取值路徑
        """
        self.json_res = json_res
        self.value_path = value_path

    def path_value_dic(self):
        """
        如果存在多個(gè)值,使用,分隔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):
        """
        根據(jù)傳入的json路徑從響應(yīng)中取值,存入dic,主要運(yùn)用了遞歸函數(shù)
        :param d: 響應(yīng)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)

以上代碼,直接跑,可將需要取的值存入一個(gè)字典。

具體想怎么存怎么使用,就各自發(fā)揮了~

Python:返回json數(shù)據(jù)

安裝json庫

pip install json
conda install json

在Python中,你可以使用內(nèi)置的json模塊來返回一個(gè)JSON數(shù)據(jù)。以下是一個(gè)簡單的例子:

示例

import json  
  
def get_json():  
    data = {  
        "name": "John",  
        "age": 30,  
        "city": "New York"  
    }  
    return json.dumps(data)  
  
# 調(diào)用函數(shù)并打印返回的JSON數(shù)據(jù)  
print(get_json())

在這個(gè)例子中,首先導(dǎo)入了json模塊。

然后定義了一個(gè)名為get_json的函數(shù),該函數(shù)返回一個(gè)字典。

我們使用json.dumps()函數(shù)將這個(gè)字典轉(zhuǎn)換為一個(gè)JSON字符串,然后返回這個(gè)字符串。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論