如何从requests-cache的内存CachedSession中获取缓存数据?
获取requests-cache内存缓存数据的方法
如果你用的是requests-cache的CachedSession,内存后端的缓存数据可以通过以下方式访问:
- 直接访问缓存后端的存储字典:
session.cache._store,这个字典里存着所有缓存的键值对,键是请求的哈希值,值是包含响应数据的缓存条目对象。 - 用后端提供的方法遍历缓存:
session.cache.keys():获取所有缓存键session.cache.values():获取所有缓存条目session.cache.items():获取键值对形式的所有缓存数据
- 要获取特定请求的缓存,可以先用
session.cache.create_key(request)生成对应请求的键,再用session.cache.get(key)取出缓存。
举个简单的使用例子:
from requests_cache import CachedSession from datetime import timedelta session = CachedSession(backend='memory', expire_after=timedelta(days=1)) # 先发起请求生成缓存数据 session.get('https://example.com') # 遍历打印所有缓存内容 for key, item in session.cache.items(): print(f"缓存键: {key}") print(f"响应内容: {item.response.content.decode()}") print(f"缓存过期时间: {item.expires}\n")
注意:_store属于库的内部属性,不同版本的requests-cache可能会有变动。由于官方未提供公开的获取API,这种方式属于“非官方”用法,后续升级库时需要留意是否有变化。
内容的提问来源于stack exchange,提问作者AidarDzhumagulov
相关产品推荐
相关产品推荐

