Python使用csv.DictReader读取CSV生成字典后如何分离键与值
实现代码
你可以直接利用csv.DictReader自带的fieldnames属性一次性获取所有公共键(即CSV文件的表头内容),再通过字典内置的values()方法提取每行的对应值,示例如下:
import csv with open ('student_marks.txt') as csv_file: csv_reader = csv.DictReader(csv_file) # 提取所有键(表头),仅需执行一次 all_keys = csv_reader.fieldnames print("所有键:", all_keys) print("="*60) # 遍历每行数据提取值 for row in csv_reader: # 提取当前行所有值 row_values = list(row.values()) print("当前行值:", row_values) # 如需单独取某个键的值,直接按下述方式调用即可 print(f"学生ID:{row['Student ID']},期末成绩:{row['Final (40%)']}\n")
如果需要从单个行字典中分别提取键和值(不需要提前拿公共表头),可以使用下述写法:
for row in csv_reader: current_row_keys = list(row.keys()) current_row_values = list(row.values()) print("当前行键:", current_row_keys) print("当前行值:", current_row_values)
说明
- 所有行的键都和CSV表头一致,因此无需在循环中重复提取键,直接调用
fieldnames属性效率更高 - 直接通过
row[键名]的方式取值可读性更强,不需要按索引匹配值对应的字段含义
内容的提问来源于stack exchange,提问作者coja56
相关产品推荐
相关产品推荐

