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

如何将嵌套的Python字典转换为单层字典?

嵌套字典转单层字典的实现方案

针对你给出的嵌套字典结构,这里提供几种简洁的实现方式,帮你完成转换:

方法一:手动合并(直观易懂)

先提取data子字典的内容,再添加外层的error键值对,适合这种固定结构的简单场景:

status = {'data': {'isFault': False, 'isButton': False, 'battery': 'NORMAL', 'powerInput': 'NOT_PRESENT', 'powerInput5vIo': 'NOT_PRESENT'}, 'error': 'NO_ERROR'}

# 复制data中的键值对到新字典(避免修改原data字典)
new_status = status['data'].copy()
# 添加error字段
new_status['error'] = status['error']

方法二:字典解包(一行代码)

利用Python的字典解包语法,一行完成合并操作,代码更简洁:

status = {'data': {'isFault': False, 'isButton': False, 'battery': 'NORMAL', 'powerInput': 'NOT_PRESENT', 'powerInput5vIo': 'NOT_PRESENT'}, 'error': 'NO_ERROR'}

new_status = {**status['data'], 'error': status['error']}

方法三:递归通用方法(适配多层嵌套)

如果后续可能遇到更深层次的嵌套字典,用递归函数可以通用处理所有情况:

def flatten_nested_dict(nested_dict):
    flat_dict = {}
    for key, value in nested_dict.items():
        if isinstance(value, dict):
            # 递归展开子字典,并合并到结果中
            flat_dict.update(flatten_nested_dict(value))
        else:
            flat_dict[key] = value
    return flat_dict

status = {'data': {'isFault': False, 'isButton': False, 'battery': 'NORMAL', 'powerInput': 'NOT_PRESENT', 'powerInput5vIo': 'NOT_PRESENT'}, 'error': 'NO_ERROR'}
new_status = flatten_nested_dict(status)

以上三种方法都能得到你需要的单层字典结构,可根据实际场景选择使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:22:05