如何用Python 3将Google Sheets导出的CSV转为字典?
把CSV文件转换为Python字典的实用方案
Hey there! 既然你已经打开了CSV文件并创建了reader对象,那咱们直接上两种能快速完成转换的方法:
方法1:用csv.DictReader(最省心的方式)
Python的csv模块自带的DictReader可以直接帮你把CSV的每一行转换成字典——键就是CSV的表头,值就是对应列的内容,完全不用手动处理表头和行内容的配对:
import csv # 如果已经打开了文件,直接用你已有的文件对象即可 with open("master_exercise_boolean.csv", mode="r", encoding="utf-8") as file: # 用DictReader替代普通reader csv_dict_reader = csv.DictReader(file) # 把所有行转成字典列表,方便后续灵活访问 csv_data = list(csv_dict_reader) # 示例:访问第一行的某个字段 print(csv_data[0]["你的表头列名"])
方法2:基于你已有的reader对象手动转换
要是你已经创建了普通的csv.reader对象,也可以手动提取表头,再把后续每行和表头配对成字典:
import csv with open("master_exercise_boolean.csv", mode="r", encoding="utf-8") as file: # 你已经创建的reader对象 csv_reader = csv.reader(file) # 提取第一行作为表头(next()会读取reader的下一行,也就是表头行) headers = next(csv_reader) # 循环处理每一行,生成字典 csv_data = [] for row in csv_reader: # 用zip把表头和行元素配对,转成字典 row_dict = dict(zip(headers, row)) # 额外优化:把CSV里的布尔字符串转成Python原生bool类型(如果需要的话) for key, value in row_dict.items(): if value.upper() == "TRUE": row_dict[key] = True elif value.upper() == "FALSE": row_dict[key] = False csv_data.append(row_dict) # 示例:筛选出所有"已完成"的条目 completed_items = [item for item in csv_data if item["是否完成"] is True] print(completed_items)
小提醒
- 编码注意:如果CSV包含中文或特殊字符,记得指定
encoding="utf-8"(或者对应文件的实际编码) - 数据类型转换:CSV里所有值默认都是字符串,像数字、布尔值这类需要手动转换成Python对应类型,比如上面代码里的布尔值处理
- 灵活筛选:转成字典列表后,你可以用列表推导式、循环快速筛选或提取需要的信息
内容的提问来源于stack exchange,提问作者playdscription
相关产品推荐
相关产品推荐

