如何在 Python 中修复"IndentationError: expected an indented block"?



我正在尝试使用 Python 对 URL 进行 API 测试,我有以下代码块

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"语句时,笔记本仍然要求缩进

问题是你没有告诉程序当第一个条件满足时该怎么做(if 语句(。如果你不确定在if中做什么,你可以在"pass"中使用python构建。

if page_response.status_code == 200:
pass
else:
print(page_response.status_code)

这是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.

您可以通过在if语句中放置至少pass命令或任何工作行来解决这个问题。

类似的问题之前已经问过:
Python:预期一个缩进块

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/")

相关内容

最新更新