【问题标题】:Receiving Nonetype error even though I am able to scrape the images of the website,即使我能够抓取网站的图像,也收到 Nonetype 错误,
【发布时间】:2020-06-02 16:47:20
【问题描述】:

我对python编程比较陌生,并且已经编写了这段代码来抓取网站的图像并将其保存在我的计算机上,虽然这段代码似乎可以工作,但最后我得到了一个错误

if len(nametemp)== 0 or nametemp== None:
TypeError: object of type 'NoneType' has no len()

谁能告诉我我做错了什么?

【问题讨论】:

  • 不要将代码作为图片发布。编辑您的问题并将代码作为文本(格式正确)。
  • 在你if语句中,交换两个表达式,所以你先检查nametemp== None。 Python 以及许多其他编程语言从左到右计算表达式。所以它会在继续到 nametemp== None 之前尝试评估 len(nametemp) == 0 。如果nametemp 确实为无,如您的错误消息所示,则它无法检查第一个表达式。您还可以将 if 语句重写为简单的if not nametemp。空列表和 None 是假的:stackoverflow.com/questions/39983695/…

标签: python html beautifulsoup python-requests


【解决方案1】:

改变if条件中的顺序,

if nametemp == None or len(nametemp) == 0:

【讨论】:

  • 这是可行的,因为如果第一个条件的计算结果为 True,则根本不会计算第二个条件。这使得 len 仅在 nametemp 不是 None 时才被调用
  • @DanishMallick 如果有帮助记得标记答案,meta.stackexchange.com/a/5235
猜你喜欢
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
相关资源
最近更新 更多