如何处理PwnedPasswords API纯文本响应并提取数据为嵌套列表
你遇到的问题核心原因是没有先按行拆分文本,直接对全量文本做冒号分割导致的,strip方法仅能处理字符串首尾的转义字符,无法处理文本中间的换行符。
修复后的代码
def getSuffix(password): # 注:需补充prefix的计算逻辑,即password对应SHA1哈希的前5位 api_resp = get(f"https://api.pwnedpasswords.com/range/{prefix}") resp_text = api_resp.text # 自动识别各类换行符拆分出所有行,过滤空行后按冒号分割生成嵌套列表 result = [line.split(":") for line in resp_text.splitlines() if line.strip()] print(result)
逻辑说明
- 调用
splitlines()方法可以自动识别\n、\r、\r\n等各类换行转义序列,直接把响应文本拆分为单条数据行的列表 - 逐行对单条数据按
:分割,就能分别拿到哈希后缀和泄露次数两个元素 - 增加
if line.strip()的判断是为了过滤响应末尾可能存在的空行,避免生成无效的空元素
内容的提问来源于stack exchange,提问作者Himanshu Sardana
相关产品推荐
相关产品推荐

