Python 缩进错误: IndentationError: expected an indented block 解决方法

在 Python 代码中,缩进是语法的一部分,用来表示代码块的层次结构。当代码的缩进不正确时,就会出现 "IndentationError: expected an indented block" 错误。

错误示例:

try:
    print('正在截图,请稍等...')
    sleep(2)

    # 获取页面大小
    if browser.capabilities['browserName'] == 'firefox':
        page_width = browser.execute_script('return document.body.scrollWidth')
        page_height = browser.execute_script('return document.body.scrollHeight')
    else:
        page_rect = browser.execute_cdp_cmd('Page.getLayoutMetrics', {})
        page_width = page_rect['contentSize']['width']
        page_height = page_rect['contentSize']['height']

    # 截图配置
    screenshot_config = {
        'quality': 80,
        'format': 'png',
        'clip': {
            'width': page_width,
            'height': page_height,
            'x': 0,
            'y': 0,
            'scale': 1
        }}

    # 截图
    if browser.capabilities['browserName'] == 'firefox':
        result = browser.execute_script('return canvas.toDataURL('image/png');')
        with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
            f.write(base64.b64decode(result.split(',')[1]))
    else:
        result = browser.execute_cdp_cmd('Page.captureScreenshot', screenshot_config)
        with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
            f.write(base64.b64decode(result['data']))

    print('截图成功')
    print('===============================')
except Exception as e:
    print('截图失败')
    print(e)
    print('===============================')

错误原因:

代码中 print('正在截图,请稍等...') 语句缺少一个缩进,导致它不在 try 代码块内。

解决方法:

print('正在截图,请稍等...') 语句缩进一下,使其与其他代码在同一级别。

try:
    print('正在截图,请稍等...')
    sleep(2)

    # 获取页面大小
    if browser.capabilities['browserName'] == 'firefox':
        page_width = browser.execute_script('return document.body.scrollWidth')
        page_height = browser.execute_script('return document.body.scrollHeight')
    else:
        page_rect = browser.execute_cdp_cmd('Page.getLayoutMetrics', {})
        page_width = page_rect['contentSize']['width']
        page_height = page_rect['contentSize']['height']

    # 截图配置
    screenshot_config = {
        'quality': 80,
        'format': 'png',
        'clip': {
            'width': page_width,
            'height': page_height,
            'x': 0,
            'y': 0,
            'scale': 1
        }
    }

    # 截图
    if browser.capabilities['browserName'] == 'firefox':
        result = browser.execute_script('return canvas.toDataURL('image/png');')
        with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
            f.write(base64.b64decode(result.split(',')[1]))
    else:
        result = browser.execute_cdp_cmd('Page.captureScreenshot', screenshot_config)
        with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
            f.write(base64.b64decode(result['data']))

    print('截图成功')
    print('===============================')
except Exception as e:
    print('截图失败')
    print(e)
    print('===============================')

注意:

  • Python 代码的缩进通常使用四个空格。
  • 确保所有代码块的缩进都一致。

其他可能导致缩进错误的原因:

  • 混合使用空格和制表符进行缩进。
  • 代码编辑器设置的缩进大小不一致。

总结:

解决 "IndentationError: expected an indented block" 错误的关键在于检查代码的缩进,并确保所有代码块的缩进一致。

Python 缩进错误: IndentationError: expected an indented block 解决方法

原文地址: https://www.cveoy.top/t/topic/m2NZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录