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

使用trp包处理Textract输出时遭遇page['Blocks']键错误求助

问题诊断与解决方案

核心原因

trp库的_parseDocumentPagesAndBlockMap函数依赖传入的文档结构包含顶级Pages数组字段,每个Page元素内有Blocks。而你的JSON是单页结构(直接在顶级节点下有Blocks),导致库初始化时self._responsePages为空或结构不匹配,遍历page['Blocks']时触发键错误。

验证步骤

确认你的JSON结构:

  • 你的JSON结构(单页):
    {
      "Blocks": [...],
      "DocumentMetadata": {...}
    }
    
  • trp库期望的结构(多页/标准输出):
    {
      "DocumentMetadata": {...},
      "Pages": [
        {"Blocks": [...]}
      ]
    }
    

修复方案

方案1:修改JSON结构后传入

加载JSON后,手动将单页Blocks包装为Pages数组结构:

import json
from trp import Document, TDocumentSchema

# 加载原始JSON(注意路径用r转义避免转义字符问题)
with open(r'C:\Users\user\Downloads\1.json', 'r') as file:
    data = json.load(file)

# 适配trp库的结构要求
if "Pages" not in data and "Blocks" in data:
    data = {"Pages": [{"Blocks": data["Blocks"]}]}

# 初始化trp Document
doc = Document(TDocumentSchema().dump(data))

方案2:直接构造trp的Page对象(可选)

如果不想修改原始数据,也可以手动构造库需要的结构:

import json
from trp import Document, Page

# 加载原始数据
with open(r'C:\Users\user\Downloads\1.json', 'r') as file:
    data = json.load(file)

# 直接创建Page并传入Document
page = Page(data["Blocks"])
doc = Document([page])

额外检查

  • 确认trp库版本:如果是旧版本,可能对单页结构兼容性差,尝试升级到最新版:
    pip install --upgrade amazon-textract-response-parser
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:25:05