我想与环路接所述内元件alias
两者的值dims
和metrics
存在于JSON和所附独立dimsList
和metricsList
Python列表。
json_obj =
{
"dataset":"246",
"dims":{
"Location":{
"alias":"Location",
"format":""
}
},
"metrics":{
"ToTal_Dwell":[
{
"agg":"sum",
"format":"",
"alias":"ToTal_Dwell"
}
]
},
"filters":"",
"limit":"10"
}
期望结果就像dimsList = ['Location']
和metricsList = ['ToTal_Dwell']
您可以使用 递归迭代.items()
。每次您看到内部字典时,您都会进行递归调用,而内部列表会导致列表中每个内部字典的调用。
试试这个:
json_obj = {
"dataset": "246",
"dims": {
"Location": {
"alias": "Location",
"format": ""
}
},
"metrics": {
"ToTal_Dwell": [
{
"agg": "sum",
"format": "",
"alias": "ToTal_Dwell"
}
]
},
"filters": "",
"limit": "10"
}
def extract_inner_values(d, key):
results = []
for k, v in d.items():
if k == key:
results.append(v)
if isinstance(v, dict):
results.extend(extract_inner_values(v, key))
if isinstance(v, list):
for inner_d in v:
results.extend(extract_inner_values(inner_d, key))
return results
dimsList = extract_inner_values(json_obj["dims"], "alias")
metricsList = extract_inner_values(json_obj["metrics"], "alias")
print(dimsList)
print(metricsList)
输出:
['Location']
['ToTal_Dwell']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句