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

AWS Cloud Quest机器学习实验:Lambda函数无法识别表格求助

解决AWS Cloud Quest机器学习实验中Lambda表格检测错误问题

你遇到的错误核心在于代码中保留了不必要的表单字段处理逻辑,尽管已经将FeatureTypes改为TABLES,但冗余的表单处理代码会干扰实验的验证逻辑,导致测试无法通过。

问题具体分析

  • 代码中包含page.form.fields的遍历和打印逻辑,这部分属于表单(FIELDS)处理范畴,与当前实验要求的表格(TABLES)检测无关,验证脚本会因这部分多余逻辑判断函数未正确聚焦表格检测任务。
  • 虽然指定了FeatureTypes=['TABLES'],但未清理原有的表单处理代码,函数执行时仍会尝试处理表单数据,不符合实验的预期行为。

修改后的代码

import json
import logging
import boto3

from trp import Document
from urllib.parse import unquote_plus

logger = logging.getLogger()
logger.setLevel(logging.INFO)

s3 = boto3.client('s3')

output_key = "output/textract_response.json"


def lambda_handler(event, context):

    logger.info(event)
    for record in event['Records']:
        bucket = record['s3']['bucket']['name']
        key = unquote_plus(record['s3']['object']['key'])
        textract = boto3.client('textract')

        try:
            response = textract.analyze_document(  
                Document={                         
                    'S3Object': {
                        'Bucket': bucket,
                        'Name': key
                    }
                },
                FeatureTypes=['TABLES']                            
            )

            doc = Document(response)  

            # 仅保留表格处理逻辑
            for page in doc.pages:
                print("\nTable details:")
                for table in page.tables:
                    for r, row in enumerate(table.rows):
                        for c, cell in enumerate(row.cells):
                            print("Table[{}][{}] = {}".format(r, c, cell.text))

            return_result = {"Status": "Success"}

            # 将Textract响应写入S3指定路径
            s3.put_object(
                Bucket=bucket,
                Key=output_key,
                Body=json.dumps(response, indent=4)
            )

            return return_result
        except Exception as error:
            return {"Status": "Failed", "Reason": json.dumps(error, default=str)}

关键修改点

  • 完全移除所有与表单字段(page.form)相关的遍历、打印代码,确保函数仅专注于表格检测与处理。
  • 简化FeatureTypes的写法,去掉冗余注释和逗号(不影响功能,但代码更整洁)。
  • 保留核心的表格遍历打印逻辑,以及将Textract响应写入S3的步骤,这是实验要求的关键输出。

内容的提问来源于stack exchange,提问作者Artur Uvarov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:17:28