如何在Python 3中将字典数组写入CSV文件?
解决方法
首先得把你那组单键字典的列表转成一个统一的大字典,不然处理起来容易乱:
project_index = [ {'A': ['1', '2', '3']}, {'B': ['4', '5', '6']}, {'C': ['7', '8', '9']}, {'D': ['10', '11', '12']}, {'E': ['13', '14', '15']}, {'F': ['16', '17', '18']} ] # 转成统一字典 data_dict = {} for item in project_index: key, value = next(iter(item.items())) data_dict[key] = value
下面给两种实现方式,按需选择:
方式一:用Python标准库csv(无需额外安装包)
import csv # 提取列标题和对应的数据列 headers = list(data_dict.keys()) # 把各列的元素按行打包,确保每一行是各列对应位置的元素 rows = zip(*data_dict.values()) # 写入CSV文件 with open('result.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(headers) # 先写入表头 writer.writerows(rows) # 再写入所有行数据
方式二:用pandas(代码更简洁)
如果已经安装了pandas,直接这么写就行:
import pandas as pd # 直接把字典转成DataFrame,再导出为CSV df = pd.DataFrame(data_dict) df.to_csv('result_pandas.csv', index=False, encoding='utf-8')
之前你遇到的格式问题,要么是没把分散的单键字典整合成统一结构,要么是没拆分数组里的元素,导致数据错位或者整个数组塞到一个单元格里。上面两种方法都能实现每个键作为列标题,数组里的每个元素单独占一个单元格,和你要的示例效果一致。
内容的提问来源于stack exchange,提问作者Lif
相关产品推荐
相关产品推荐

