直接代碼吧
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)