我有以下代码块
def simple_get(url):
try:
page_response = requests.get(page_link, timeout=5)
if page_response.status_code == 200:
# extract
else:
print(page_response.status_code)
# notify, try again
except requests.Timeout as e:
print("It is time to timeout")
print(str(e))
except # other exception
运行时,出现以下错误
File "<ipython-input-16-6291efcb97a0>", line 11
else:
^
IndentationError: expected an indented block
我不明白为什么我已经缩进“ else”语句后笔记本仍然要求缩进
答案 0 :(得分:1)
问题是您没有告诉程序在满足第一个条件时(if语句)该怎么做。如果不确定该怎么办,可以在“ pass”中使用python build。
if page_response.status_code == 200:
pass
else:
print(page_response.status_code)
答案 1 :(得分:0)
这是Python
中最基本的概念,用于开始编码:
以#
开头的行在代码块中被忽略。
此处的代码
if page_response.status_code == 200:
# extract
else:
print(page_response.status_code)
直译为
if page_response.status_code == 200:
else:
print(page_response.status_code)
因此产生IndentationError
。
您可以通过在pass
语句中至少放置if
命令或任何工作行来解决此问题。
以前已经问过类似的问题:
Python: Expected an indented block
答案 2 :(得分:0)
import requests
from bs4 import BeautifulSoup
def simple_get(url):
try:
page_response = requests.get(url, timeout=5)
if page_response.status_code == 200:
print(page_response.status_code)
pass
# extract
else:
print(page_response.status_code)
# notify, try again
except requests.Timeout as e:
print("It is time to timeout")
print(str(e))
simple_get("https://www.nytimes.com/")