python 解析接口response內容,根據key提出value

直接代碼吧

import json


class AnalysisJson:
    """解析接口返回json,根據key拿到value"""
    def __init__(self, data):
        self.data = data
        if isinstance(self.data, str):
            print('*****log :data is str')
            self.data = json.loads(self.data)
            print('*****log :data is converted to dict')

    key_list = []

    def analysis_json(self, key):
        """
        :param key:需要查找的key
        :return:返回查找結果list
        """
        if isinstance(self.data, dict):
            for keys in self.data.keys():
                print('*****log :keys %s' % keys)
                print('*****log :value type is %s and value is %s' % (type(self.data.get(keys)), self.data.get(keys)))
                # print(data_key, data_value)
                if isinstance(self.data.get(keys), (dict, list)):
                    AnalysisJson(self.data.get(keys)).analysis_json(key)
                else:
                    if key == keys:
                        print('*****log :key "%s"+ is exist,value is "%s"' % (keys, self.data.get(keys)))
                        self.key_list.append(self.data.get(keys))
                        print('*****log :key_list value is "%s"' % self.key_list)
        elif isinstance(self.data, list):
            for array in self.data:
                AnalysisJson(array).analysis_json(key)
        return self.key_list


if __name__ == '__main__':
    data1 = '''{
        "":"3cc85316-716d-42d5-a794-fb763ef448fd",
        "aaa":[
            {
                "":"",
                "ccc":"ts_sg_inr_slb",
                "":false,
                "":"public",
                "":"216f2dfb-771a-45c7-a928-b0ca8c94e52e"
            },
            {
                "":"1c6e8975-f5bd-4885-a5c8-d198f03dae242222",
                "":"ts_sg_inr_slb",
                "":false,
                "":"public",
                "":"216f2dfb-771a-45c7-a928-b0ca8c94e52e"
            }
        ]
    }'''

    result = AnalysisJson(data1).analysis_json("ccc")
    print(result)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章