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

Python如何将含列表的嵌套字典转换为扁平化键值对

你原有实现只覆盖了嵌套字典的场景,新增列表类型的判断分支即可满足需求,遍历列表时将元素下标转为字符串作为键的一部分拼接,修改后的代码如下:

def flat_dict_helper(prepend, item):
    # 前缀拼接逻辑
    if len(prepend) > 0:
        prepend = prepend + "_"
    # 处理字典类型
    if isinstance(item, dict):
        for k, v in item.items():
            yield from flat_dict_helper(prepend + str(k), v)
    # 处理列表类型
    elif isinstance(item, list):
        for idx, v in enumerate(item):
            yield from flat_dict_helper(prepend + str(idx), v)
    # 基础类型直接返回键值对
    else:
        yield (prepend, item)


def flat_dict(d):
    return dict(flat_dict_helper("", d))

测试示例:

d = {
  "key1": "value1",
  "key2": {
    "key3": "value3",
    "key4": {
      "key5": "value5",
      "key6": [{"keys1": "value_keys1"}]
    }
  }
}

print(flat_dict(d))

运行输出和预期一致:

{
    'key1': 'value1',
    'key2_key3': 'value3',
    'key2_key4_key5': 'value5',
    'key2_key4_key6_0_keys1': 'value_keys1'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:54:03