Document.AI Python客户端无法返回表格数据,求解决技巧
Document AI提取PDF表格数据的Python客户端实用技巧
使用专用表格处理器
不要用通用文档处理器,必须指定表格专用的处理器(如表单解析处理器)。拖拽示例会自动匹配合适的处理器,但Python代码里如果选错处理器,会导致表格提取逻辑不触发。显式开启表格提取配置
调用process_document时,必须在请求中添加table_extraction_params并设置enabled=True,官方基础示例可能默认未开启该配置。示例代码如下:from google.cloud import documentai_v1 as documentai def extract_pdf_tables(): client = documentai.DocumentProcessorServiceClient() # 替换为你的项目、区域、处理器ID processor_name = client.processor_path("你的项目ID", "区域ID", "表格处理器ID") with open("目标PDF文件路径", "rb") as f: pdf_content = f.read() raw_doc = documentai.RawDocument(content=pdf_content, mime_type="application/pdf") # 关键配置:开启表格提取 table_params = documentai.TableExtractionParams(enabled=True) request = documentai.ProcessRequest( name=processor_name, raw_document=raw_doc, table_extraction_params=table_params ) response = client.process_document(request=request) document = response.document print(f"成功提取到{len(document.tables)}个表格")升级客户端到最新版本
旧版Python客户端可能存在表格提取的兼容性问题,执行命令升级:pip install --upgrade google-cloud-documentai适配扫描型PDF的OCR配置
如果是图像扫描生成的PDF,需要在请求中开启OCR相关参数,确保处理器能识别图像中的表格:ocr_params = documentai.OcrParams(enable_native_pdf_parsing=True) request = documentai.ProcessRequest( name=processor_name, raw_document=raw_doc, table_extraction_params=table_params, ocr_params=ocr_params )核对响应解析逻辑
确保直接读取document.tables全局数组,不要误读页面层级的document.pages[x].tables——部分场景下表格会同时挂载在页面和全局,但全局数组才是完整的提取结果集合。
内容的提问来源于stack exchange,提问作者Michał Bogusz
相关产品推荐
相关产品推荐

