0

0

如何将 CSV 文件逐行解析为字典(纯 Python,无需第三方模块)

霞舞

霞舞

发布时间:2026-03-02 13:12:01

|

113人浏览过

|

来源于php中文网

原创

如何将 CSV 文件逐行解析为字典(纯 Python,无需第三方模块)

本文介绍如何不依赖 csv 或其他外部模块,仅用内置函数将 CSV 文件按行转换为以表头为键、对应单元格为值的字典列表,并提供简洁可靠的实现方案与关键注意事项。

本文介绍如何不依赖 `csv` 或其他外部模块,仅用内置函数将 csv 文件按行转换为以表头为键、对应单元格为值的字典列表,并提供简洁可靠的实现方案与关键注意事项。

在实际数据处理中,常需将结构化 CSV 数据快速映射为易于操作的 Python 字典。若受限于环境(如嵌入式系统、教学场景或安全策略),无法使用 csv 模块时,完全可通过 open()、strip()、split() 和 zip() 等内置工具高效完成该任务。

核心思路分两步:

  1. 读取并解析首行作为 headers(列名);
  2. 对后续每一行,按逗号分割后与 headers 一一配对,构造字典

以下为推荐实现(已通过 Python 3.8+ 验证):

with open("data.csv", "r", encoding="utf-8") as f:
    # 读取并解析表头(去除换行符,按逗号分割)
    headers = next(f).strip().split(",")

    # 遍历剩余各行
    for line in f:
        # 清理行尾换行符,分割字段,与 headers 组合成字典
        values = line.strip().split(",")
        row_dict = dict(zip(headers, values))
        print(row_dict)

假设 data.csv 内容如下:

立即学习Python免费学习笔记(深入)”;

VisualizeAI
VisualizeAI

用AI把你的想法变成现实

下载
Name,Age,City
Alice,28,Beijing
Bob,34,Shanghai
Charlie,22,Guangzhou

运行结果为:

{'Name': 'Alice', 'Age': '28', 'City': 'Beijing'}
{'Name': 'Bob', 'Age': '34', 'City': 'Shanghai'}
{'Name': 'Charlie', 'Age': '22', 'City': 'Guangzhou'}

关键优势

  • 零外部依赖,兼容所有标准 Python 环境;
  • 内存友好——逐行处理,不一次性加载整个文件;
  • 逻辑清晰,zip(headers, values) 天然保证键值顺序一致。

⚠️ 注意事项

  • CSV 转义与引号未处理:本方案假设字段不含逗号、换行符或双引号(即“简单 CSV”)。若数据含复杂内容(如 "Smith, Jr.",35,"New York"),必须改用 csv 模块,否则 split(",") 会错误切分;
  • 编码问题:务必显式指定 encoding="utf-8"(尤其 Windows 默认 ANSI 环境),避免中文乱码;
  • 空行防护:生产环境建议添加 if not line.strip(): continue 跳过空白行;
  • 字段数量校验:可加入 if len(values) != len(headers): raise ValueError(...) 防止列数不匹配导致静默错误。

如需收集全部字典而非逐行打印,只需初始化一个空列表并在循环中 dict_list.append(row_dict) 即可。此方法是理解 CSV 解析底层机制的理想起点,亦可作为轻量级数据预处理的可靠备选方案。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

838

2023.08.22

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

261

2025.10.24

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

348

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1080

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

182

2025.09.12

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1336

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1159

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

827

2023.08.01

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

43

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号