报错requests库中没有json模块

这是怎么回事

AttributeError: module 'requests' has no attribute 'json'

检查requests版本。或者是json被占用了。

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:python关于requests爬虫json输出中文乱码问题
  • 除此之外, 这篇博客: 【python爬虫学习笔记】一、requests和json模块的使用中的 requests主要方法和参数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 主要方法

      GET: 请求指定的页面信息,并返回实体主体。
      HEAD: 只请求页面的首部。
      POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
      PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
      DELETE: 请求服务器删除指定的页面。

    	requests.post()
    	requests.put()
    	requests.delete()
    	requests.head()
    
    • 主要参数的使用
      对于python爬虫最常用的就是get和post请求,以post请求为例:
      post(url, data=None, json=None, **kwargs)
      这个博主写的挺好的:
      https://blog.csdn.net/qq_39262610/article/details/110004527

      使用request请求会返回一个Response对象,如果请求成功的的话直接打印Response只会返回200的状态码 ,所以一般使用response.text或response.content来获取请求返回的信息。

    • text和content的区别
      两者区别在于,content中间存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串。

      直接输出content,会发现前面存在b’这样的标志,这是字节字符串的标志,而text是,没有前面的b,对于纯ascii码,这两个可以说一模一样,对于其他的文字,需要正确编码才能正常显示。大部分情况建议使用.text,因为显示的是汉字,但有时会显示乱码,这时需要用.content.decode(‘utf-8’),中文常用utf-8和GBK,GB2312等。这样可以手工选择文字编码方式。

      所以简而言之,.text是现成的字符串,.content还要编码,但是.text不是所有时候显示都正常,这是就需要用.content进行手动编码。
      参考博客:
      https://www.cnblogs.com/wanglingjiang/p/11542685.html

您在遇到该错误时可能正在使用Python中的requests模块。根据错误消息,看起来您尝试对requests模块返回的响应对象使用.json()方法,但是requests模块没有名为json的属性或方法。

要解决这个问题,请确保您已经正确导入了requests模块,并且对响应对象使用了适当的方法。