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

如何遍历Python嵌套字典 提取子字典值依次赋值给对应变量

嵌套字典遍历提取值实现方法

注意不要使用dict作为自定义变量名,会覆盖Python内置的字典类型,建议替换为其他名称比如source_data。

核心实现逻辑

先取字典中result键对应的列表,逐次遍历列表内的每一个子字典,不管子字典数量是2个还是更多,都可以在循环体内完成值的提取和赋值,完全适配子元素数量不固定的场景。

代码实现

基础版本(循环内直接使用变量)

如果只是需要在遍历到每个子字典时,临时使用对应三个值做业务处理,直接在循环内解包赋值即可,变量会逐轮被当前子字典的值覆盖,和你给出的期望赋值逻辑完全一致:

source_data = {'result': [{'a1': 'one', 'a2': 'two', 'a3': '2'},
                          {'b1': 'three', 'b2': 'one', 'b3': '5'}]}

for sub_item in source_data['result']:
    # 按子字典内值的存储顺序,依次赋值给三个变量
    res1, res2, res3 = sub_item.values()
    
    # 下方写你需要对三个变量执行的操作,这里用打印示例效果
    print(f"res1 = {res1}")
    print(f"res2 = {res2}")
    print(f"res3 = {res3}")
    print("-"*20)

运行输出如下:

res1 = one
res2 = two
res3 = 2
--------------------
res1 = three
res2 = one
res3 = 5
--------------------

注意事项

  • 如果你的运行环境低于Python3.7,字典默认不保证键值对的存储顺序,直接用.values()可能出现取值错位,这时候可以显式指定每个子字典要提取的键顺序,保证取值准确。
  • 如果需要保留所有子字典提取出的结果,不要在循环外用固定变量名接收(会被最后一轮循环的值覆盖),建议把每轮的结果存入列表统一管理:
result_list = []
for sub_item in source_data['result']:
    res1, res2, res3 = sub_item.values()
    result_list.append( {"res1": res1, "res2": res2, "res3": res3} )

# 取第一个子字典的res2值:result_list[0]["res2"] → 输出 two
# 取第二个子字典的res3值:result_list[1]["res3"] → 输出 5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:21:36