c_zachary 2022-07-13 16:31 采纳率: 50%
浏览 71
已结题

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-13 17: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月21日
  • 已采纳回答 7月14日
  • 创建了问题 7月13日

悬赏问题

  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
  • ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
  • ¥15 一道以太网数据传输题
  • ¥15 python 下载群辉文件
  • ¥50 代码还没怎么运行但是需要代码功能调用数据
  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?