遍历dict的叶子节点,获取绝对路径和值。
{
"condition": {
"relation": "and",
"params": [
{
"relation": "and",
"params": [
{
"name": "lds_create_time",
"search_type": "gt",
"label": "创建时间",
"field_type": "7",
"value": [
"946656000"
]
}
]
}
]
},
"mid": "27466",
"pky": "qdy20220707",
"src": "qdy_mina"
}
condition[relation]and
condition[params][0][relation]and
condition[params][0][params][0][name]lds_create_time
condition[params][0][params][0][search_type]gt
condition[params][0][params][0][label]创建时间
condition[params][0][params][0][field_type]7
condition[params][0][params][0][value][0]946656000
mid27466
pkyqdy20220707
srcqdy_mina
你题目的解答代码如下:
dic={
"condition": {
"relation": "and",
"params": [
{
"relation": "and",
"params": [
{
"name": "lds_create_time",
"search_type": "gt",
"label": "创建时间",
"field_type": "7",
"value": [
"946656000"
]
}
]
}
]
},
"mid": "27466",
"pky": "qdy20220707",
"src": "qdy_mina"
}
def dnp(x,s,li):
if isinstance(x,list):
for i,v in enumerate(x):
dnp(v,s+f'[{i}]',li)
elif isinstance(x,dict):
for k,v in x.items():
dnp(v,s+f'["{k}"]',li)
else:
li.append([s,x])
return li
li = dnp(dic,"",[])
for p,v in li:
print(f"{p}: {v}")
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!