淄博网站建设英文网站建设

深圳市智通达吸塑制品有限公司 2026/09/09 17:49:31

在 Python 中获取列表嵌套字典(多层嵌套)的键值对,需要根据数据的嵌套层级、结构是否固定,选择直接访问、循环遍历、递归解析或专用库查询等方式。以下结合典型的嵌套数据结构,分场景详细讲解。

一、先定义典型的多层嵌套数据

首先构造一个贴近实际业务的示例数据(列表嵌套字典,字典内又嵌套字典 / 列表),后续所有示例均基于此数据:

# 示例:京东商品列表(列表嵌套字典,字典多层嵌套) goods_data = [ { "goods_id": 1001, "goods_name": "华为Mate60 Pro", "detail": { "price": 6999.0, "stock": 200, "specs": [ {"color": "雅川青", "size": "256G"}, {"color": "白沙银", "size": "512G"} ], "seller": {"name": "华为官方旗舰店", "score": 4.9} } }, { "goods_id": 1002, "goods_name": "苹果iPhone 15", "detail": { "price": 5999.0, "stock": 500, "specs": [ {"color": "黑色", "size": "128G"}, {"color": "粉色", "size": "256G"} ], "seller": {"name": "苹果官方旗舰店", "score": 4.8} } } ]

二、场景 :结构固定,直接通过「索引 + 键」访问

如果数据的嵌套层级和键名是固定已知的,直接通过列表下标(如[0])和字典键(如["goods_id"])访问是最高效的方式。

示例 1:获取单个指定的键值对
# 1. 获取第一个商品的名称 first_goods_name = goods_data[0]["goods_name"] print("第一个商品名称:", first_goods_name) # 输出:华为Mate60 Pro # 2. 获取第一个商品的价格(字典嵌套字典) first_goods_price = goods_data[0]["detail"]["price"] print("第一个商品价格:", first_goods_price) # 输出:6999.0 # 3. 获取第一个商品的第一个规格的颜色(列表嵌套字典) first_spec_color = goods_data[0]["detail"]["specs"][0]["color"] print("第一个商品第一个规格颜色:", first_spec_color) # 输出:雅川青 # 4. 获取第二个商品的商家名称 second_seller_name = goods_data[1]["detail"]["seller"]["name"] print("第二个商品商家名称:", second_seller_name) # 输出:苹果官方旗舰店
注意:避免键不存在的报错

如果不确定键是否存在,可使用字典的get()方法(默认返回None,或指定默认值),避免KeyError

# 安全获取:若键不存在,返回默认值"未知" first_goods_brand = goods_data[0].get("brand", "未知") print("第一个商品品牌:", first_goods_brand) # 输出:未知(因为原数据无brand键) # 多层嵌套的安全获取(链式get) first_seller_score = goods_data[0].get("detail", {}).get("seller", {}).get("score", 0) print("第一个商品商家评分:", first_seller_score) # 输出:4.9

实际开发中,可根据数据结构的固定性和查询需求选择合适的方法:
• 简单固定结构:用直接访问+get()方法;
• 批量提取:用循环遍历;
• 未知结构:用递归解析;
• 复杂查询:用jsonpath-ng。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

潍坊网站建设pc网站建设

大家好,我是锋哥。今天分享关于【Zookeeper集群数据是如何同步的?】面试题。希望对大家有帮助;Zookeeper集群数据是如何同步的?超硬

2026/06/30 10:50:23

莆田网站建设福田网站建设

如何在15分钟内完成s3fs-fuse容器化部署:云存储本地化终极指南【免费下载链接】s3fs-fuseFUSE-based file system backed by Amazon S

2026/06/30 12:26:01

海口网站建设齐齐哈尔网站建设

在最新发布的《2025年全球最常用的200个密码》报告中,“123456”这一“经典弱密码”再次霸榜,“admin”、“12345678”、“123456789”、“123

2026/06/30 11:33:26

北京网站建设济南网站建设

第一章:智普AI Open-AutoGLM概述智普AI推出的Open-AutoGLM是一个面向自动化自然语言处理任务的开源框架,旨在降低大模型应用开发门槛,提

2026/06/30 10:47:22

深圳网站建设乐清网站建设

OpenArm:开启人形机械臂研究新纪元的开源利器【免费下载链接】OpenArmOpenArm v0.1项目地址: https://gitcode.com/gh_mirrors/op/O

2026/06/30 13:27:06

聊城网站建设咸阳网站建设

一、研究动机与核心贡献聚类作为无监督学习的核心任务,在数据挖掘、图像处理、生物信息学、推荐系统、网络安全等众多领域具有广泛应用。然而,尚无一种“通用最优”的聚类算法——不同

2026/06/30 14:16:39

免费网站建设如何建设网站

Animeko:跨平台智能动漫播放器的5大核心优势解析【免费下载链接】animation-garden动漫花园多平台应用程序,使用 Compose Multiplatfor

2026/06/30 10:46:22

广州网站建设公司内蒙古网站建设

使用 GDB 进行调试的全面指南1. 准备工作在开始调试之前,需要构建带有调试符号的可执行文件。在构建选项中启用BR2_ENABLE_DEBUG(即“Build packages with debug

2026/06/30 11:06:54

云南网站建设宝山网站建设

线程取消机制的深入解析与应用1. 线程取消基础线程取消是多线程编程中一个重要的概念,它允许我们在需要时终止某个线程的执行。在某些情况下,我们可能希望某些代码段能够不受干扰地完成,这时可以通过调用pth

2026/06/30 13:20:05