Python 遍历结构复杂的多层嵌套字典,收集特定键值对

可以使用递归函数来遍历整个嵌套层次不同的字典,收集所有感兴趣的键值对,最终得到一个非嵌套结构的字典:

(一般用于处理爬取的json数据,因为有些结构真的蛮怪的(メ3[____]

def extract_key_value_pairs(nested_dict, keys_to_extract):  """  从嵌套字典中提取特定的键值对,并返回一个非嵌套结构的字典 nested_dict: 嵌套字典  keys_to_extract: 要提取的键的列表(支持嵌套键,如 'outer_key.inner_key')return: 一个非嵌套结构的字典,包含所有提取的键值对  """  flat_dict = {}  def extract_from_dict(d, prefix=''):  for key, value in d.items():  full_key = prefix + key if prefix else key  if full_key in keys_to_extract:  flat_dict[full_key] = value  if isinstance(value, dict):  extract_from_dict(value, full_key + '.')  extract_from_dict(nested_dict)  return flat_dict  # 示例嵌套字典  
nested_dict = {  'a': 1,  'b': {  'c': 2,  'd': {  'e': 3  }  },  'f': 4,  'g': {  'h': 5  }  
}  # 要提取的键  
keys_to_extract = ['a', 'b.c', 'b.d.e', 'g.h']  # 提取键值对  
result_dict = extract_key_value_pairs(nested_dict, keys_to_extract)  print(result_dict)'''输出:
{'a': 1, 'b.c': 2, 'b.d.e': 3, 'g.h': 5}'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPFH特征描述符、对应关系可视化以及ICP配准

一、FPFH特征描述符可视化 C #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/search/kdtree.h> #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d_omp.h>//使用OMP需要添加的头文件 #include <boo…

批量追踪中通快递

在物流信息的管理中&#xff0c;批量追踪中通快递单号一直是个让人头疼的问题。但有了固乔快递查询助手&#xff0c;这一切都变得轻而易举。 固乔快递查询助手&#xff0c;作为市场上备受好评的快递查询软件&#xff0c;专门针对批量查询需求进行了优化。用户只需将中通快递单号…

【Linux】简单的网络计算器的实现(自定义协议,序列化,反序列化)

文章目录 前言一、 服务端1.ServerCal.cc&#xff08;服务器主文件&#xff09;2.ServerCal.hpp3.Sock.hpp(套接字封装)4.TcpServer.hpp(服务器)5.Protocol&#xff08;自定义协议&#xff09; 二、用户端1.ClientCal 三、Log.hpp&#xff08;日志&#xff09;四、makefile 前言…

【Qt学习】QIcon类 + 利用qrc机制设置图片路径(QtCreator)

文章目录 1. QIcon / windowIcon2. setIcon() 与 setwindowIcon()2.1 setIcon() 介绍与使用2.2 setWindowIcon 介绍与使用 3. 路径问题 & qrc机制的引入3.1 绝对路径 / 相对路径 的问题3.2 qrc机制3.3 在QtCreator下利用qrc机制引入图片 1. QIcon / windowIcon QIcon QIco…

【C语言】如何处理输入值为-1的情况?

一、问题 很多情况下&#xff0c;代码将输入-1作为输入动作的结束&#xff0c;那么如果数据真的是个-1&#xff0c;怎么办? 如果数据真的是-1&#xff0c;并且-1是用来表示输入动作的结束&#xff0c;那么需要找到解决方案来区分真实的-1数据和表示结束的-1。 另一种方法是使用…

探索递归的无限魅力——一次充满惊喜的迷之旅程

在计算机科学的世界里&#xff0c;递归是一个强大而神奇的工具。它可以让问题化繁为简&#xff0c;以一种优雅而富有创造力的方式解决各种棘手的难题。递归看似简单&#xff0c;却蕴含着无尽的探索和乐趣。 让我们开始这次迷之旅程吧&#xff01;想象一下你正站在一个迷宫中央…

单输入Doherty 功率放大器的极限带宽分析(含Matlab分析代码)

单输入Doherty 功率放大器的极限带宽分析&#xff08;含Matlab分析代码&#xff09; 参考论文&#xff1a;高效连续型射频功率放大器研究 DPA的基础理论参考&#xff1a;理想架构的Doherty功率放大器理论与仿真 1、单输入Doherty 功率放大器架构 假设 Doherty 功率放大器的…

介绍7款免费的最佳地图/导航/定位/GIS开源项目

文章目录 1、xdh-map新德汇地图应用类库1.1、独立引用1.2、与MyUI结合使用1.3、快速上手1.3.1、采用项目工程模板创建项目【推荐】1.3.2、 调用组件库功能 2、蚂蚁金服AntV-L7地理空间数据可视分析引擎2.1、AntV-L7简介2.2、核心特性2.3、支持丰富的图表类型2.4、如何使用2.4.1…

BLHeli_S 代码分析—BLHeli.asm函数 init_start_bidir_done 分析

BLHeli_S 代码分析—BLHeli.asm函数init_start_bidir_done分析 init_start_bidir_done代码 代码中数据变量定义 Flags1: DS 1 ; 状态标志. Reset upon init_start 初始化启动时重置 MOTOR_SPINNING EQU 0 ; 电机旋转标志 STARTUP_PHASE EQU 1 ; 启动相位标志Startup_…

反转一个单链表

反转一个单链表 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 需要虚拟节点么&#xff1f; 答&#xff1a;不需要&#xff0c;因为没有删除节点&#xff0c;只是改变了节点的指向。 遍…

STM32-开发环境之STM32CubeMX

目录 STM32CubeMX介绍 STM32CubeMX特性 应用场景 其他事项 STM32CubeMX介绍 STM32CubeMX是ST公司&#xff08;意法半导体&#xff09;推出的一款图形化工具&#xff0c;也是配置和初始化C代码生成器。它主要服务于STM32微控制器的配置和开发。 STM32CubeMX特性 1.直观选…

计算机设计大赛 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

Rust-知多少?

文章目录 前言1.使用下划线开头忽略未使用的变量2. 变量解构3.常量4.变量遮蔽&#xff08;shadowing&#xff09;5. 类似println!("{}", x); 为啥加感叹号6.单元类型总结 前言 Rust 学习系列&#xff0c;记录一些rust使用小技巧 1.使用下划线开头忽略未使用的变量 …

MySQL跨服务器关联查询

1. 首先确认服务器的Federated引擎是否开启 show engines;修改数据库的配制文件my.ini,(我的my.ini的路径为&#xff1a;D:\ProgramData\MySQL\MySQL Server 5.7/my.ini),将federated添加到my.ini文件中 到MySQL的my.cnf配置文件中修改 在 [mysqld] 下方加入 federated 然后重…

通过前序和中序遍历结果构造二叉树

题目 105. 从前序与中序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; 思路 首先思考&#xff0c;根节点应该做什么。 肯定要想办法确定根节点的值&#xff0c;把根节点做出来&#xff0c;然后递归构造左右子树即可。 我们先来回顾一下&#xff0c;前序遍历和…

CF1781 D. Many Perfect Squares [数学题]

传送门:CF [前题提要]:一道有意思的数学题 直接想这道题是不好想的(博主当时就完全没有思路).那么考虑将一个大问题分解成一个小问题想一下(感觉这种思考方式在CF题中还是挺常见的),考虑如果同时存在多个完全平方数,那么必然满足存在两个完全平方数.而当我们确定了任意两个数之…

全网超全的测试类型详解,再也不怕面试答不出来了!

在软件测试工作过程中或者在面试过程中经常会被问到一些看起来简单但是总是有些回答不上的问题&#xff0c;比如你说说“黑盒测试和白盒测试的区别&#xff1f;”&#xff0c;“你们公司做灰度测试么&#xff1f;", ”α测试和β测试有什么不一样&#xff1f;“&#xff0…

文件 IO

一&#xff0c;标准IO和文件IO的区别 1.标准IO是库函数&#xff0c;是对系统调用的封装 2.文件IO是系统调用&#xff0c;时linux内核中的函数接口 3.标准IO是有缓存的&#xff0c;文件IO是没有缓存的&#xff08;实时性强&#xff09; 二&#xff0c;文件IO 1.三步操作&…

review 10

整理磁盘操作的完整流程&#xff0c;如何接入虚拟机&#xff0c;是否成功识别&#xff0c;对磁盘分区工具的使用&#xff0c;格式化&#xff0c;挂载以及取消挂载、复习cp、mv和find指令 1&#xff1a;U盘接入虚拟机 在弹出窗口直接选择 虚拟机-可移动设备-找到u盘-连接 2&a…

【Ubuntu 22.04】解决Ubuntu 22.04终端行距过大的问题

在Ubuntu 22.04中&#xff0c;许多用户都遇到了终端行距过大的问题&#xff0c;不论是使用 GNOME 终端还是 Terminator&#xff0c;都存在这个困扰。这个问题导致显示的内容的行距很大&#xff0c;比如执行 neofetch 命令时&#xff0c;Ubuntu LOGO被拉长。 经过查询&#xff…