13 存储数据之存储为CSV

在上篇中,我们讨论了如何使用 XPathCSS选择器 解析网页内容,并提取了我们需要的数据。在本篇中,我们将重点介绍如何将提取到的数据存储为 CSV 格式,这是数据存储和交换中一种非常常见且实用的格式。在下一篇中,我们会探讨如何将数据存储到数据库中。在继续之前,让我们先了解一下 CSV 格式的基本特征。

什么是CSV格式?

CSV,全称为“Comma-Separated Values”,即“逗号分隔值”,它是一种以纯文本形式存储数据的方式。每行代表一条记录,字段之间用逗号分隔。这种格式的优点是简单易读,广泛支持,方便与各种应用进行数据交互。

CSV 格式示例

假设我们提取到了一些书籍的信息,包括标题、作者和出版年份,存储为CSV格式可以是这样的:

1
2
3
4
标题,作者,出版年份
《算法导论》,Thomas H. Cormen, 2009
《数据结构与算法分析》,Mark Allen Weiss, 2013
《人工智能:一种现代的方法》,Stuart Russell, 2020

将数据存储为CSV

接下来,我们来看一个示例,展示如何将我们从网页上提取的数据存储到 CSV 文件中。在本示例中,我们将使用 Pythoncsv 模块。

示例代码

以下是一个使用 csv 模块将书籍信息存储为CSV文件的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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}")

代码讲解

  1. 导入模块:首先,我们导入了 csv 模块,用于处理CSV文件的读写。
  2. 数据准备:我们假设已经提取到了一些书籍的信息,存储在 books 列表中,每一本书的信息用字典表示。
  3. 创建CSV文件:使用 with open 打开(或创建)名为 books.csv 的文件,使用 mode='w' 表示写入模式,newline='' 避免在Windows系统中出现多余的新行,encoding='utf-8' 以确认文件使用UTF-8编码。
  4. 写入文件
    • 创建 DictWriter 对象,并指定字段名(即表头)。
    • 使用 writeheader() 方法写入表头。
    • 遍历 books 列表,通过 writerow() 方法写入每一本书的数据。
  5. 确认输出:最后,我们打印一条信息以确认数据已成功写入。

运行结果

执行上述代码后,在当前目录下会生成一个名为 books.csv 的文件,内容如下:

1
2
3
4
title,author,year
算法导论,Thomas H. Cormen,2009
数据结构与算法分析,Mark Allen Weiss,2013
人工智能:一种现代的方法,Stuart Russell,2020

小结

在本篇教程中,我们学习了如何将提取到的数据存储为 CSV 格式。这是一种非常实用的数据存储方式,尤其是在数据量不大时,CSV 文件简单明了,易于使用。在下一篇中,我们将探讨如何将数据存储到数据库中,这将更好地应对大规模数据和复杂查询的需求。

希望本篇教程能够帮助你掌握数据存储为 CSV 的基本方法,接下来我们将继续深入学习存储数据的更多方法!

13 存储数据之存储为CSV

https://zglg.work/crawler-zero/13/

作者

IT教程网(郭震)

发布于

2024-08-11

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论