You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从嵌套字典中提取所有PNR值并生成数组

提取嵌套字典中所有PNR字段值的解决方案

错误原因分析

你之前使用output.get("PNR")返回None是因为PNR不是外层字典output的直接键,而是外层字典每个值(子字典)内部的键,直接在外层字典查询自然无法匹配到对应值。

可兼容任意字典长度的实现方案

方案1:列表推导式(Python 3.8+,最简洁)

使用海象运算符简化判断逻辑,一行即可完成提取:

pnr_list = [pnr for sub_dict in output.values() if (pnr := sub_dict.get("PNR")) is not None]

方案2:通用循环写法(兼容所有Python版本)

如果需要兼容Python3.8以下版本,使用普通遍历逻辑即可:

pnr_list = []
# 遍历外层字典的所有子字典
for sub_dict in output.values():
    # 尝试提取子字典的PNR值,不存在则返回None
    pnr_val = sub_dict.get("PNR")
    if pnr_val is not None:
        pnr_list.append(pnr_val)

运行结果示例

针对你给出的示例字典,上述代码执行后pnr_list的结果为:

["51313542", "13151351351", "13151351351", "13151351351", "13151351351", "13151351351", "13151351351", "13151351351", "13151351351", "13151351351", "13151351351"]

内容的提问来源于stack exchange,提问作者Umut K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:54:03