如何使用Python将CSV文件中的数据转换为指定格式的字典
Python实现CSV转指定格式字典方案
方案1:使用Python标准库csv(无需安装额外依赖)
直接用Python自带的csv模块处理,兼容包含换行、特殊字符的症状字段:
import csv # 替换为你的CSV文件实际路径 csv_path = "your_file.csv" result_dict = {} with open(csv_path, mode='r', encoding='utf-8') as f: # 若CSV第一行是表头,取消下一行的注释跳过表头 # next(csv.reader(f)) reader = csv.reader(f) for row in reader: if not row: # 跳过空行 continue # 第一列为字典key,剩余所有列的内容拼接为value,用逗号分隔 disease = row[0].strip() symptoms = ','.join([item.strip() for item in row[1:]]) + ',' result_dict[disease] = symptoms # 输出查看结果 print(result_dict)
方案2:使用pandas处理(适合大文件场景)
如果已经安装pandas,可以用更简洁的写法:
首先安装依赖:pip install pandas
处理代码:
import pandas as pd # 替换为你的CSV文件实际路径,若有表头请删除header=None参数 df = pd.read_csv("your_file.csv", header=None, encoding='utf-8') # 第一列为key,剩余列拼接为value result_dict = df.set_index(0).apply(lambda x: ','.join(x.dropna().astype(str).str.strip()) + ',', axis=1).to_dict() # 输出查看结果 print(result_dict)
注意事项
- 如果你的CSV分隔符不是逗号,需要在读取时指定分隔符参数,比如csv模块的
delimiter='\t',pandas的sep='\t' - 编码如果出现乱码,可以尝试将encoding参数改为
gbk或者utf-8-sig
内容的提问来源于stack exchange,提问作者Ricky
相关产品推荐
相关产品推荐

