如何使用Python将指定格式的CSV文件转换为目标结构的字典
将CSV转换为目标字典结构的Python实现
没问题!用Python自带的csv模块就能轻松完成这个转换,不需要额外安装库。下面是具体的实现步骤和代码示例:
方法思路
- 读取CSV文件时,利用
csv.DictReader把每一行数据映射成表头为键的字典,方便直接提取对应字段。 - 初始化一个空字典,遍历每一行数据:
- 用
spelling列的值作为新字典的键 - 把
pronunciation、syllables、tag这三列的值组成列表,作为对应键的值
- 用
- 最终得到你想要的字典结构。
完整代码示例
import csv from io import StringIO # 模拟你的CSV内容(如果是本地文件,直接用open()读取即可) csv_content = """spelling,pronunciation,syllables,tag head,H-EH-D,1,NSING bottle,B-O-T-UH-L,2,NSING fall,F-AW-L,1,VBASE""" # 初始化目标字典 result_dict = {} # 读取CSV并构建字典 with StringIO(csv_content) as csv_file: reader = csv.DictReader(csv_file) for row in reader: # 提取需要的字段并组装成列表 value_list = [row['pronunciation'], row['syllables'], row['tag']] # 将spelling作为键,列表作为值存入字典 result_dict[row['spelling']] = value_list # 打印结果 print(result_dict)
运行结果
运行上述代码后,输出的字典结构如下:
{'head': ['H-EH-D', '1', 'NSING'], 'bottle': ['B-O-T-UH-L', '2', 'NSING'], 'fall': ['F-AW-L', '1', 'VBASE']}
适配本地CSV文件
如果你的CSV是本地文件(比如words.csv),只需要把代码中的StringIO部分替换成文件读取即可:
with open('words.csv', 'r', encoding='utf-8') as csv_file: reader = csv.DictReader(csv_file) # 后续逻辑和上面一致
内容的提问来源于stack exchange,提问作者Hermit




