Form Recognizer自定义模型:Python解析器适配API响应报错解决
解决AnalyzeResult对象无法下标访问的问题
核心原因
你之前的解析器是针对JSON字典结构开发的,但Form Recognizer API返回的AnalyzeResult是SDK封装的类实例,并非原生字典,因此使用[]下标访问会触发TypeError。
快速适配方案
1. 将AnalyzeResult转为字典(推荐,无需修改原有解析器)
SDK内置了to_dict()方法,可直接把AnalyzeResult实例转换为和UI导出JSON结构完全一致的字典,直接传入原有解析器即可兼容:
# 假设SDK调用返回的结果为response analyze_result = response.result # 转换为可下标访问的字典 result_dict = analyze_result.to_dict() # 传入你的解析器执行后续逻辑 your_parser_function(result_dict)
2. 直接使用SDK属性访问(适合优化现有逻辑)
如果不想转换字典,也可以直接通过AnalyzeResult的属性层级获取数据,替代字典的下标访问方式:
# 替代字典写法 result_dict["documents"][0]["fields"]["InvoiceNumber"] invoice_number = analyze_result.documents[0].fields["InvoiceNumber"].value
这种方式类型更安全,还能利用IDE代码提示避免拼写错误。
关键提示
两种方案都无需将结果写入Blob存储,全程在内存中完成转换或访问,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Gabriel
相关产品推荐
相关产品推荐

