Python字典在网络爬虫中的使用笔记

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', '未知标题')

补充操作

删除数据

使用delpop()删除字典中的键值对。

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字典在网络爬虫中的各种应用,包括数据存储、解析、更新、遍历和错误处理等,是网络爬虫开发中不可或缺的一部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值