You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Amazon Textract处理S3存储桶PDF文件失败报KeyError: 'Blocks'错误

AWS Textract处理S3存储桶PDF文件KeyError: 'Blocks'错误解决方案

错误现象

已启动任务ID:43950fhihfe0r94th34hf0934hf349hg034fh9304fj90349gh349f
任务状态:FAILED
错误回溯:

Traceback (most recent call last):
File "C:/Users/hima459004/PycharmProjects/testproject/textract.py", line 62, in 
for item in resultPage['Blocks']:
KeyError: 'Blocks'

已接收到第1页结果集
进程执行结束,退出代码为1

错误根因

该错误是因为代码未预先校验Textract异步任务的执行状态,任务已经标记为FAILED的情况下,返回结果中不存在Blocks字段,直接遍历该字段就会触发键不存在报错。

修复步骤

1. 新增任务状态校验逻辑

在获取任务返回结果后,先判断任务状态,仅当状态为SUCCEEDED时再处理Blocks字段,任务失败时打印官方返回的错误原因,方便排查。
修复参考代码:

import boto3

textract = boto3.client('textract')
job_id = "你的任务ID"

# 获取异步任务结果
response = textract.get_document_text_detection(JobId=job_id)
job_status = response['JobStatus']

if job_status == 'SUCCEEDED':
    # 任务执行成功,正常处理Blocks字段
    for item in response['Blocks']:
        # 原有文本提取逻辑
        pass
elif job_status == 'FAILED':
    # 任务执行失败,打印错误原因
    print(f"任务失败原因:{response.get('StatusMessage', '无官方错误提示')}")

2. 针对任务失败原因排查

常见FAILED状态的触发原因及对应解决方案:

  • 权限配置错误:确认执行代码的IAM身份有S3桶的s3:GetObject权限,同时Textract服务关联的角色有对应S3资源的读取权限
  • 文件合规性问题:确认目标PDF未加密、未损坏,单文件大小不超过500MB,页数不超过3000页
  • 区域不匹配:确认调用Textract服务的区域与S3存储桶所在区域完全一致,跨区域调用异步任务会直接失败

内容的提问来源于stack exchange,提问作者Himanshu Gaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:15:02