You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python请求报错:module 'request' has no attribute 'get' 求助

解决 AttributeError: module 'request' has no attribute 'get' 及代码问题

你遇到的AttributeError核心原因是库名拼写错误——Python中常用的HTTP请求库是requests(复数形式),而不是request(单数)。单数的request是一个不相关的小模块,它根本没有get方法,所以才会抛出这个错误。

除了库名拼写,你的代码还有几个明显的逻辑问题需要修正:

  • 错误调用response.post():requests.get()返回的是一个Response对象,这个对象并没有post方法。post是requests库本身的方法,如果你需要发送POST请求,应该直接用requests.post(url),而不是从GET请求的响应里调用。
  • 循环读取文件的逻辑缺陷:while True配合readline()会无限循环,哪怕文件读完了也会一直处理空字符串,应该判断读取到的内容是否为空来终止循环,或者用更Pythonic的for line in file方式遍历文件行。
  • 未处理异常情况:比如无效链接、网络错误、HTTP状态码错误(如404、500),这些都会导致程序直接崩溃,最好加上异常捕获让程序更健壮。

修正后的代码示例

假设你的需求是读取文件中的每个链接,发送GET请求并打印响应内容,修正后的代码如下:

import requests  # 注意这里是复数的requests

# 用with语句自动管理文件关闭,避免资源泄漏
with open("your_links_file.txt", "r") as file:
    for line in file:
        code = line.strip()  # 用strip()去掉换行符和前后空白,比replace("\n", "")更可靠
        if not code:  # 跳过文件中的空行
            continue
        
        try:
            # 发送GET请求
            r = requests.get(code)
            r.raise_for_status()  # 如果返回HTTP错误状态码(如404),主动抛出异常
            print(r.text)  # 直接打印GET请求的响应内容
        except requests.exceptions.RequestException as e:
            # 捕获所有请求相关的异常,给出友好提示
            print(f"请求链接 {code} 时出错: {e}")
        
        # 等待用户输入后继续下一个请求
        input("按回车键继续下一个请求...")

如果你的实际需求是发送POST请求,只需要把requests.get(code)改成requests.post(code)即可。如果需要传递POST参数,可以添加data或json参数,比如:

requests.post(code, data={"username": "test", "password": "123"})

额外注意事项

  • 确保你已经安装了requests库:如果还没安装,在终端运行pip install requests即可。
  • strip()方法比replace("\n", "")更通用,它能同时处理换行符、制表符和前后多余的空格。
  • 异常捕获可以让程序在遇到错误时不会直接崩溃,而是清晰地告诉你哪里出了问题。

内容的提问来源于stack exchange,提问作者WierdCoderPart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:27:54