Python字典在网络爬虫中的使用笔记
存储抓取的数据
字典通过键值对存储数据,使得数据组织结构清晰,方便管理和访问。
data = {
'title': 'Python网络爬虫教程',
'author': '张三',
'publish_date': '2023-01-01'
}
解析JSON数据
利用json.loads()
函数将JSON格式字符串转换为Python字典,便于处理。
import json
json_str = '{"title": "Python网络爬虫教程", "author": "张三", "publish_date": "2023-01-01"}'
data = json.loads(json_str)
处理复杂的嵌套结构
字典可嵌套使用,适应复杂的网页数据结构。
data = {
'book': {
'title': 'Python网络爬虫教程',
'author': '张三',
'publish_date': '2023-01-01',
'chapters': [
{'chapter_title': '第一章', 'page': 10},
{'chapter_title': '第二章', 'page': 20}
]
}
}
数据提取和筛选
通过字典的键来提取和筛选数据。
title = data['book']['title']
数据存储和持久化
将字典转换为JSON字符串并保存到文件,实现数据持久化。
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
数据更新和修改
通过键赋值更新字典中的数据。
data['book']['publish_date'] = '2023-02-01'
数据遍历
使用items()
方法遍历字典中的所有键值对。
for key, value in data['book'].items():
print(f'{key}: {value}')
错误处理
使用get()
方法避免键不存在的错误。
title = data.get('book', {}).get('title', '未知标题')
补充操作
删除数据
使用del
或pop()
删除字典中的键值对。
del data['book']['author'] # 删除键值对
removed_value = data['book'].pop('author') # 删除并返回值
检查键是否存在
使用in
关键字检查键是否存在于字典中。
if 'title' in data['book']:
print("Title exists.")
字典的默认值
设置字典的默认值,避免访问不存在的键时出错。
default_dict = defaultdict(lambda: '默认值')
字典的合并
使用update()
或{**dict1, **dict2}
合并字典。
dict1.update(dict2)
result = {**dict1, **dict2}
字典的排序
使用sorted()
函数对字典的项进行排序。
sorted_items = sorted(data['book'].items())
字典的视图
使用keys()
, values()
, items()
获取字典的视图。
keys_view = data['book'].keys()
values_view = data['book'].values()
items_view = data['book'].items()
字典的不变性
字典的键必须是不可变类型,如字符串、数字或元组。
这篇笔记总结了Python字典在网络爬虫中的各种应用,包括数据存储、解析、更新、遍历和错误处理等,是网络爬虫开发中不可或缺的一部分。