如何在 python 中保存并稍后加载 Azure AnalyzeResult 对象?

问题描述 投票:0回答:1

我已经使用生成文档分析结果,

 with open(pdf_path, "rb") as f:
     poller = document_intelligence_client_sections.begin_analyze_document(
         "prebuilt-layout", f.read(), content_type="application/pdf", 
         output_content_format=ContentFormat.MARKDOWN, ) 
 result = poller.result()
 
 type(section_layout)
 >> azure.ai.documentintelligence.models._models.AnalyzeResult  # Want in this format! 

我已经使用 ...as_dict() 保存了结果,如下,

with open("data/section_layouts/result.json", "w") as f:
    json.dump(section_layout.as_dict(), f)

现在,当我使用以下方式加载 json 时,

with open("result.json", "r") as f:
    data = json.load(f)

我按预期获取了字典中的数据。但是,我想以 AnalyzeResult 类格式获取数据。有人可以帮忙吗?谢谢。

json azure azure-form-recognizer
1个回答
0
投票

我按预期获取了字典中的数据。但是,我想以 AnalyzeResult 类格式获取数据。有人可以帮忙吗?谢谢。

您可以使用以下代码获取

AnalyzeResult
类格式的数据。

代码:

import json
from azure.ai.formrecognizer import DocumentAnalysisClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import AnalyzeResult

endpoint = "https://xxxx.cognitiveservices.azure.com/"
api_key = "xxxxx"
document_intelligence_client_sections = DocumentAnalysisClient(endpoint, AzureKeyCredential(api_key))

pdf_path = r"C:\Users\xxx\demo.pdf"

with open(pdf_path, "rb") as f:
    poller = document_intelligence_client_sections.begin_analyze_document(
        model_id="prebuilt-layout", document=f.read(),
    )
    section_layout = poller.result()

with open("result.json", "w") as f:
    json.dump(section_layout.to_dict(), f)  # Use to_dict() to save as JSON
    
with open("result.json", "r") as f:
    data = json.load(f)

# Convert the dictionary back to an AnalyzeResult object
analyze_result = AnalyzeResult.from_dict(data)

# Now you can work with the AnalyzeResult object
print(type(analyze_result)) 

上面的代码使用

to_dict()
方法将
AnalyzeResult
对象保存为 JSON 文件,然后使用
from_dict()
方法将 JSON 数据转换回
AnalyzeResult
对象。

输出:

<class 'azure.ai.formrecognizer._models.AnalyzeResult'>

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.