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

如何将含层级数据的Excel转换为嵌套Python字典?

Excel转带层级结构的Python字典解决方案

一、优化Excel格式(简化代码的核心)

推荐用点分隔符表示层级键名,这是实现通用转换最便捷的格式,示例如下:

prefixstatusvlan.vid
10.0.1.0/28container200

如果需要更直观的层级展示,也可以用缩进列(但代码逻辑稍复杂):

prefixstatusvlanvid
10.0.1.0/28container200

二、Python代码实现

针对点分隔键名的Excel(推荐方案)

使用pandas读取数据,将扁平的带点键转换为嵌套字典:

import pandas as pd
import json

def build_nested_dict(row):
    nested = {}
    for key, val in row.items():
        if pd.isna(val):
            continue
        # 拆分层级键
        key_parts = key.split('.')
        current_level = nested
        # 逐层创建嵌套字典
        for part in key_parts[:-1]:
            if part not in current_level:
                current_level[part] = {}
            current_level = current_level[part]
        # 设置最终值
        current_level[key_parts[-1]] = val
    return nested

# 读取Excel文件
df = pd.read_excel('your_excel_file.xlsx')

# 组装成目标结构
final_result = [
    {
        "ipam.prefixes": [
            {row['prefix']: build_nested_dict(row)} 
            for _, row in df.iterrows()
        ]
    }
]

# 格式化输出结果
print(json.dumps(final_result, indent=2))

代码效果

运行后会生成你需要的结构:

[
  {
    "ipam.prefixes": [
      {
        "10.0.1.0/28": {
          "prefix": "10.0.1.0/28",
          "status": "container",
          "vlan": {
            "vid": 200
          }
        }
      }
    ]
  }
]

扩展说明

  • 支持任意深度的层级键(比如a.b.c.d),代码无需修改即可自动处理
  • 空值会被自动跳过,避免生成无效的嵌套结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:05:25