Python如何将由不等长列表构成的字典写入CSV文件
不等长列表字典写入CSV实现方案
这里提供两种可直接运行的实现方式:
方案1:使用pandas实现(简便快捷)
import pandas as pd # 示例字典 dic = {'a': ['ACI', 'BBY', 'AMRX'], 'b': ['ABM', 'AG']} # 计算所有列表的最大长度,用于补全短列表 max_len = max(len(val) for val in dic.values()) # 补全所有列表到最大长度,空缺位置填None processed_dict = {k: v + [None] * (max_len - len(v)) for k, v in dic.items()} # 生成DataFrame并写入CSV,index=False表示不输出行号 pd.DataFrame(processed_dict).to_csv('result.csv', index=False, encoding='utf-8-sig')
方案2:使用Python标准库csv实现(无需安装第三方依赖)
import csv dic = {'a': ['ACI', 'BBY', 'AMRX'], 'b': ['ABM', 'AG']} headers = list(dic.keys()) max_len = max(len(val) for val in dic.values()) with open('result.csv', 'w', newline='', encoding='utf-8-sig') as f: writer = csv.writer(f) # 写入表头 writer.writerow(headers) # 逐行写入数据,超出列表长度的位置填空字符串 for i in range(max_len): row = [dic[col][i] if i < len(dic[col]) else '' for col in headers] writer.writerow(row)
两种方案最终输出的CSV内容一致,效果如下:
| a | b |
|---|---|
| ACI | ABM |
| BBY | AG |
| AMRX |
内容的提问来源于stack exchange,提问作者uoay
相关产品推荐
相关产品推荐

