如何使用Python将CSV文件转换为由多个字典组成的列表
CSV文件转换为字典列表的实现方案
以下以Python语言为例,提供三种常用实现方式:
方案1:使用标准库csv的DictReader(最推荐,适配标准CSV格式)
直接调用Python内置模块,无需安装第三方依赖,自动处理引号包裹的带逗号字段、换行等特殊CSV格式场景。
示例代码:
import csv # 替换为你的CSV文件路径 with open("test.csv", "r", encoding="utf-8") as csv_file: # DictReader会自动将第一行作为字典的键 csv_reader = csv.DictReader(csv_file) # 直接转为列表即可得到目标结果 result = list(csv_reader) print(result)
如果需要调整字段类型,比如将age转为整数,可以修改为:
result = [] for row in csv_reader: row["age"] = int(row["age"]) result.append(row)
方案2:手动逐行读取(适合学习底层逻辑)
不依赖任何库,自行处理文件内容,仅适合格式简单、无特殊字符的CSV文件:
示例代码:
with open("test.csv", "r", encoding="utf-8") as csv_file: # 读取第一行作为字典键 keys = csv_file.readline().strip().split(",") result = [] for line in csv_file: line = line.strip() # 跳过空行 if not line: continue values = line.split(",") result.append(dict(zip(keys, values)))
方案3:使用pandas库(适合大数据量场景)
如果需要处理GB级大CSV,或者后续还要做数据清洗,可以用pandas快速实现:
示例代码:
import pandas as pd # dtype=str 保证所有字段读取为字符串,和示例输出格式一致 df = pd.read_csv("test.csv", dtype=str) # to_dict参数指定为records即可输出字典组成的列表 result = df.to_dict("records")
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

