c_zachary 2022-07-14 00:31 采纳率: 50%
浏览 67
已结题

python 遍历dict的所有叶子节点,获取绝对路径和值

问题遇到的现象和发生背景

遍历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

  • 写回答

1条回答 默认 最新

  • 天际的海浪 2022-07-14 01:14
    关注

    你题目的解答代码如下:

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

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月22日
  • 已采纳回答 7月14日
  • 创建了问题 7月14日

悬赏问题

  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持