场景
python调用接口response.text耗时久
response = requests.get( url=url, headers=self.headers, data=form_data, timeout=10 ) response.raise_for_status() st = time.time() result = response.text print(f'response.text 耗时:{round(time.time()-st,2)}秒')原因
response.text耗时久的核心原因是:
- requests 库的响应处理机制:
response.text不是简单的读取数据,而是会做编码检测、字符解码等操作,当响应内容很大(你的结果长度 3068758 字符,约 3MB)时,这些操作在不同系统 / 环境下效率差异会被放大。 - 系统 / 环境差异:Linux/macOS 与 Windows 的底层 IO、字符处理库、Python 解释器优化程度不同,且可能存在网络 IO 后续处理的延迟。
- 代码逻辑计时误差:你当前的计时位置不准确,把
response.text的耗时和后续的日志处理混在一起了。
解决
# 明确指定编码,避免requests自动检测编码的耗时 response.encoding = 'utf-8' # 直接用content解码 result = response.content.decode('utf-8')