13 存储数据之存储为CSV
在上篇中,我们讨论了如何使用 XPath
和 CSS选择器
解析网页内容,并提取了我们需要的数据。在本篇中,我们将重点介绍如何将提取到的数据存储为 CSV
格式,这是数据存储和交换中一种非常常见且实用的格式。在下一篇中,我们会探讨如何将数据存储到数据库中。在继续之前,让我们先了解一下 CSV
格式的基本特征。
什么是CSV格式?
CSV
,全称为“Comma-Separated Values”,即“逗号分隔值”,它是一种以纯文本形式存储数据的方式。每行代表一条记录,字段之间用逗号分隔。这种格式的优点是简单易读,广泛支持,方便与各种应用进行数据交互。
CSV 格式示例
假设我们提取到了一些书籍的信息,包括标题、作者和出版年份,存储为CSV格式可以是这样的:
标题,作者,出版年份
《算法导论》,Thomas H. Cormen, 2009
《数据结构与算法分析》,Mark Allen Weiss, 2013
《人工智能:一种现代的方法》,Stuart Russell, 2020
将数据存储为CSV
接下来,我们来看一个示例,展示如何将我们从网页上提取的数据存储到 CSV
文件中。在本示例中,我们将使用 Python
的 csv
模块。
示例代码
以下是一个使用 csv
模块将书籍信息存储为CSV文件的示例代码:
import csv
# 假设我们从网页上提取到的数据
books = [
{"title": "算法导论", "author": "Thomas H. Cormen", "year": 2009},
{"title": "数据结构与算法分析", "author": "Mark Allen Weiss", "year": 2013},
{"title": "人工智能:一种现代的方法", "author": "Stuart Russell", "year": 2020},
]
# 指定CSV文件名
csv_file = "books.csv"
# 写入CSV文件
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=["title", "author", "year"])
# 写入表头
writer.writeheader()
# 写入数据行
for book in books:
writer.writerow(book)
print(f"数据已成功存储到 {csv_file}")
代码讲解
- 导入模块:首先,我们导入了
csv
模块,用于处理CSV文件的读写。 - 数据准备:我们假设已经提取到了一些书籍的信息,存储在
books
列表中,每一本书的信息用字典表示。 - 创建CSV文件:使用
with open
打开(或创建)名为books.csv
的文件,使用mode='w'
表示写入模式,newline=''
避免在Windows系统中出现多余的新行,encoding='utf-8'
以确认文件使用UTF-8编码。 - 写入文件:
- 创建
DictWriter
对象,并指定字段名(即表头)。 - 使用
writeheader()
方法写入表头。 - 遍历
books
列表,通过writerow()
方法写入每一本书的数据。
- 创建
- 确认输出:最后,我们打印一条信息以确认数据已成功写入。
运行结果
执行上述代码后,在当前目录下会生成一个名为 books.csv
的文件,内容如下:
title,author,year
算法导论,Thomas H. Cormen,2009
数据结构与算法分析,Mark Allen Weiss,2013
人工智能:一种现代的方法,Stuart Russell,2020
小结
在本篇教程中,我们学习了如何将提取到的数据存储为 CSV
格式。这是一种非常实用的数据存储方式,尤其是在数据量不大时,CSV
文件简单明了,易于使用。在下一篇中,我们将探讨如何将数据存储到数据库中,这将更好地应对大规模数据和复杂查询的需求。
希望本篇教程能够帮助你掌握数据存储为 CSV
的基本方法,接下来我们将继续深入学习存储数据的更多方法!