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"))