How to fix "IndentationError: expected an indented block" in Python?

How to fix "IndentationError: expected an indented block" in Python?

我正在尝试使用 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 中做什么,你可以使用 python build in 'pass'.

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.

您可以通过将至少 pass 命令或任何工作行放入 if 语句来解决它。

之前已经有人问过类似的问题:
Python: Expected an indented block

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