如何使用pandas将字典列表写入Excel文件
问题排查与解决
错误原因
- 循环写入同一工作表时每次都会覆盖原有内容,无法实现数据追加
- DataFrame构造参数逻辑错误,将字典键、值分别传入数据位和索引位,和你需要的
vlan/port列结构完全不匹配 - 未处理空端口列表的场景,会导致部分数据缺失或结构异常
正确实现代码
import pandas as pd # 原始测试数据 lstofdic = [{'96': ['1/3/21', '1/3/22']}, {'97': ['1/3/20']}, {'98': []}, {'180': ['1/4/7']}, {'181': []}] # 预处理为标准二维表结构 processed_data = [] for dic in lstofdic: # 取单个字典的键(vlan号)和值(端口列表) vlan_id = next(iter(dic.keys())) port_list = dic[vlan_id] # 空端口列表单独处理,保留vlan,端口设为空 if not port_list: processed_data.append({"vlan": vlan_id, "port": ""}) continue # 一个vlan对应多个端口的话,逐行生成记录 for port in port_list: processed_data.append({"vlan": vlan_id, "port": port}) # 生成DataFrame后写入Excel with pd.ExcelWriter("out.xlsx") as writer: pd.DataFrame(processed_data).to_excel(writer, sheet_name='sheet1', index=False)
输出说明
生成的Excel sheet1页面会按行展示所有vlan与对应端口的映射关系,单个vlan对应多个端口时会拆分多行显示,无端口的vlan会保留记录、端口列为空值,符合常规数据导出的使用习惯。
内容的提问来源于stack exchange,提问作者Dhananjaya D N
相关产品推荐
相关产品推荐

