Python将字典列表导出Excel时仅显示最后一条数据如何解决
问题原因
- 循环中重复覆盖
excel_dict的同名键,循环结束后字典仅保留最后一条数据 - 每次循环都执行
df.to_excel()默认覆盖写入,前面生成的内容会被后续内容完全替换 - 多余的
df.T转置操作,和你要的「姓名、年龄作为列标题」的需求完全相反
修复方案
pandas原生支持直接将字典列表转换为DataFrame,无需手动循环处理,直接用以下代码即可实现需求:
import pandas as pd people = [ { 'name':'corey', 'age':12, }, { 'name':'matt', 'age':15, }, { 'name':'evan', 'age':25 }] # 直接基于字典列表生成DataFrame df = pd.DataFrame(people) # 导出到Excel,无需保留默认索引列 df.to_excel('dict1.xlsx', index=False)
运行后生成的Excel文件会自动将name、age作为列标题,对应数据逐行填充在标题下方。
循环实现的可选写法
如果需要练习循环逻辑,可以按以下方式修改,每次循环将单条数据追加到列表,最后统一生成DataFrame导出:
import pandas as pd people = [ { 'name':'corey', 'age':12, }, { 'name':'matt', 'age':15, }, { 'name':'evan', 'age':25 }] data_list = [] for person in people: data_list.append({ 'name': person['name'], 'age': person['age'] }) df = pd.DataFrame(data_list) df.to_excel('dict1.xlsx', index=False)
内容的提问来源于stack exchange,提问作者Michal K
相关产品推荐
相关产品推荐

