json recursive queries

main body:
class json_search():
    '''递归查询依赖key'''
    def search_key(self,data,key):
        self.data = data
        self.key_value = []
        if self.data_json(data) != False:
            self.search(self.data,key)
            return  self.key_value
        else:
            return False

    def data_json(self,data):
        ''' 入参判断'''
        '''json是str子类'''
        if isinstance(data,str):
            try:
                self.data=json.loads(data,encoding='utf-8')
            except ValueError :
                print("value error input")
                return False
        elif isinstance(data,dict):
            return self.data
        else:
            return False

    def search(self,data,key):
        for i in data:
            if i == key:
                self.key_value.append(data[i])
            elif isinstance(data[i],dict):
                self.key_value.append(data[i].get(key))
            elif isinstance(data[i],list):
                for j in data[i]:
                    self.search(j,key)
        return self.key_value 
示例:
search_json=json_search()
Data = { 
"API3 / getbanneradvertver2": [
{ "10016": "token error"},
{ "1006": "User name error"},
{ "1006": "password"},
{ "1000": " success "}
],
" API3 / beta4 ": [
{" 1006 ":" successful landing "},
{" 1006 ":" username error "},
{" 1006 ":" wrong password "}
],
" API3 / getcourseintro ": [
{" 1006 ":" error token "},
{" 1006 ": 2022},
{" 10001 ":" user name error "},
{" 10002 ": [{" 100092 ":" 9 "}]
}
],
"/api3/getads":[
{"1000":"成功"}
]
}
if __name__ == "__main__":
print(search_json.search_key(data,"1000"))

Guess you like

Origin www.cnblogs.com/cyanrose/p/11596598.html