在 Python 爬虫中,CSV 和 JSON 是两种常用的数据交换格式,它们可以方便地用于存储和传输数据。以下是如何处理和存储这两种格式的数据的示例。
CSV 数据格式处理与存储
原理:CSV(逗号分隔值)是一种简单的文件格式,用于存储表格数据,如电子表格或数据库。数据通常以纯文本形式存储,每行一个记录,字段之间用逗号分隔。
代码示例(写入 CSV):
import csv
# 假设我们有一个包含数据的列表,每个元素也是一个列表,代表 CSV 的一行
data = [
['Name', 'Age', 'City'], # 标题行
['John', '30', 'New York'],
['Anna', '22', 'Los Angeles']
]
# 写入 CSV 文件
with open('people.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerows(data) # 写入所有行
代码示例(读取 CSV):
import csv
# 读取 CSV 文件
with open('people.csv', newline='', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row) # 打印每一行
JSON 数据格式处理与存储
原理:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。它基于文本,是键值对的集合。
代码示例(写入 JSON):
import json
# 假设我们有一个字典或列表,包含要存储的数据
data = [
{
'Name': 'John', 'Age': 30, 'City': 'New York'},
{
'Name': 'Anna', 'Age': 22, 'City': 'Los Angeles'}
]
# 将数据写入 JSON 文件
with open('people.json', 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)
代码示例(读取 JSON):
import json
# 读取 JSON 文件
with open('people.json', 'r', encoding='utf-8') as file:
data = json.load(file)
for item in data:
print(item) # 打印每个项目
存储数据时的注意事项
- CSV:当处理包含特殊字符或引号的数据时,需要确保正确地转义这些字符,以避免格式错误。
- JSON:JSON 格式是大小写敏感的,并且在存储时可以选择是否美化(增加可读性)输出,通过
indent
参数控制。