Python如何将嵌套字典列表数据导出为指定格式Excel?
如何将Python字典列表导出为指定格式的Excel文件?
刚好我经常处理这类数据格式转换的需求,用pandas来实现是最简洁高效的,下面是完整的实现步骤和代码:
步骤1:安装必要的库
首先确保你已经安装了pandas和openpyxl(后者是用来写入.xlsx格式文件的核心引擎),如果没装的话,执行下面的命令:
pip install pandas openpyxl
步骤2:数据转换与导出代码
下面的代码会把你提供的finalResult数据转换成指定的表格格式,还会设置基础样式匹配你要的视觉效果:
import pandas as pd # 你的原始数据 finalResult = [ {'40': {'A': 3.1, 'B': 5.62, 'C': 5.99, 'D': 5.06, 'E': 5.09}}, {'50': {'A': 2.95, 'B': 5.21, 'C': 5.41, 'D': 4.64, 'E': 4.5}}, {'60': {'A': 2.35, 'B': 4.8, 'C': 4.83, 'D': 4.08, 'E': 3.62}}, {'70': {'A': 1.94, 'B': 4.6, 'C': 4.41, 'D': 3.65, 'E': 3.62}} ] # 1. 把分散的字典列表整理成统一的字典格式 data_dict = {} for item in finalResult: col_name = list(item.keys())[0] data_dict[col_name] = item[col_name] # 2. 转换成DataFrame,强制指定行顺序为A-E,确保和目标格式一致 df = pd.DataFrame(data_dict).reindex(['A', 'B', 'C', 'D', 'E']) # 3. 导出到Excel并设置美化样式 with pd.ExcelWriter('result.xlsx', engine='openpyxl') as writer: df.to_excel(writer, sheet_name='Sheet1', startrow=0, startcol=0) # 获取工作表对象来调整样式 worksheet = writer.sheets['Sheet1'] # 设置单元格居中对齐(让表格更规整) from openpyxl.styles import Alignment center_align = Alignment(horizontal='center', vertical='center') # 遍历所有单元格应用对齐样式 for row in worksheet.iter_rows(): for cell in row: cell.alignment = center_align # 自动调整列宽,适配内容长度 for col in worksheet.columns: max_content_length = 0 column_letter = col[0].column_letter for cell in col: try: if len(str(cell.value)) > max_content_length: max_content_length = len(str(cell.value)) except: pass # 给列宽留一点余量 worksheet.column_dimensions[column_letter].width = max_content_length + 2
代码逻辑说明
- 数据整理:把原始的字典列表转换成一个以
40/50/60/70为列名、A-E对应数值为行内容的大字典,方便pandas直接识别转换。 - DataFrame生成:用
pd.DataFrame快速转换格式,再通过reindex强制行顺序为A到E,完全匹配你要的表格结构。 - 样式美化:通过openpyxl设置单元格居中对齐和自动列宽,让最终的Excel文件视觉效果和你提供的参考样式一致。
运行代码后,你会得到一个result.xlsx文件,打开后就是你想要的表格格式啦。
内容的提问来源于stack exchange,提问作者MMMMS
相关产品推荐
相关产品推荐

