Python将字典写入Excel单个单元格:非pandas实现及效率对比
问题解答
1. pandas方案是否为效率最优选择?
不是。
你当前的需求属于极轻量的Excel写入场景,仅需要写入2行2列的少量数据,pandas作为重型数据分析库,本身加载、构造DataFrame的过程会产生大量不必要的性能开销,冗余依赖(如numpy)也会增加部署成本。只有当你需要批量处理上万行、做复杂数据转换的场景下,pandas的性能优势才会体现,你的存档场景用pandas属于过度设计。
2. 无pandas依赖的实现方法
你可以直接用pandas底层调用的openpyxl库完成写入,逻辑更简单、性能更高:
import datetime from openpyxl import Workbook my_dict = { 'key1': 'MOCK-12345-67890:09876', 'key2': 'MOCK-abcdef-ghijklmnop', 'key3': datetime.datetime.now(), 'key15': 15029.62946216, 'key16': [ 'MOCK-1', 'MOCK-2' ], 'info': { 'key_sub_1': 3934823, 'key_sub_25': 'MOCK-A' }, } # 创建工作簿和工作表 wb = Workbook() ws = wb.active ws.title = "Sheet 1" # 写入表头 ws['A1'] = 'Col1' ws['B1'] = 'Col2' # 写入数据,直接把字典转字符串写入A2单元格 ws['A2'] = str(my_dict) ws['B2'] = 'something wonderful' # 保存文件 wb.save('delme1.xlsx')
方案优势
- 依赖更轻:仅需要安装
openpyxl,不需要引入pandas、numpy等重型依赖,部署包体积可减少90%以上 - 速度更快:省去了DataFrame构造、pandas内部格式转换的流程,小数据量场景下运行速度提升5~10倍
- 逻辑更直观:直接操作单元格,不需要理解pandas的IO接口逻辑,后续调整也更灵活
如果你后续需要把单元格里的字符串转回Python字典,可以用ast.literal_eval()方法解析,比eval()更安全。
内容的提问来源于stack exchange,提问作者Pranav Joshi
相关产品推荐
相关产品推荐

