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

如何通过嵌套字典底层'A'键值调用顶层test_1_floor?

解决方法

首先明确:你拿到的start_node(也就是test_1['test_1_node']['A']对应的字典)本身没有指向顶层test_1的引用,没法直接从它身上获取test_1_floor,得换思路实现,下面是几种可行方案:

方案1:保存节点名称,直接从顶层字典取值

最简单的方式是在获取节点字典时,同时保留节点名称和顶层字典的访问权限,之后直接从顶层取楼层值:

# 记录节点名称和顶层字典
node_name = 'A'
start_node = test_1['test_1_node'][node_name]
# 直接获取楼层
floor = test_1['test_1_floor']

方案2:给节点字典添加关联信息

修改原始字典结构,给每个节点字典额外添加楼层信息或者顶层字典的引用,这样拿到节点后就能直接取值:

添加楼层信息

# 修改后的test_1_node结构示例
test_1['test_1_node']['A'] = {'B':8, 'C':1, 'D':2, 'floor': test_1['test_1_floor']}
# 之后直接从节点取楼层
floor = start_node['floor']

添加顶层字典引用

# 给每个节点添加顶层引用
for node in test_1['test_1_node'].values():
    node['_top_dict'] = test_1
# 通过节点获取楼层
floor = start_node['_top_dict']['test_1_floor']

方案3:反向查找节点名称(不推荐,效率低)

如果没办法提前保存节点名称,只能遍历test_1['test_1_node'],找到对应start_node的键,再取顶层楼层:

floor = None
for name, node_dict in test_1['test_1_node'].items():
    # 用is判断是否是同一个对象
    if node_dict is start_node:
        floor = test_1['test_1_floor']
        break

内容的提问来源于stack exchange,提问作者youngsheepp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:58:13