首页 > 解决方案 > 如何将 'google.cloud.documentai.v1beta2.types.document.Document' 转换为 JSON?

问题描述

我正在使用 Google Cloud Document AI 的 Form Parser API。在我向 API 发出请求后,我收到了 type 的响应google.cloud.documentai.v1beta2.types.document.Document。我尝试将它写入 JSON 使用json.dumps() ,但它给出了JSONDecodeError因为JSON.dumps()不知道如何序列化类型的对象google.cloud.documentai.v1beta2.types.document.Document

我很困惑如何将其转换为 JSON

任何帮助表示赞赏!

标签: pythonjsongoogle-apigoogle-api-python-client

解决方案


我刚刚发现该google.cloud.documentai.v1beta2.types.document.Document对象继承自proto.Message,它本身继承自proto.MessageMeta。您可以使用该proto.MessageMeta.to_json函数将 Document 对象转换为 json 字符串,如下所示:

import json
from google.cloud.documentai_v1beta3 import Document

json_string = Document.to_json(document)
dict_obj = json.loads(json_string)
with open("document.json", mode='w') as my_file:
    json.dump(dict_obj, my_file)

源代码proto.Message有点难找,所以这里是:https ://github.com/googleapis/proto-plus-python/blob/cfd5b6caca3fa9add89d8c69ea620505dd90dd7c/proto/message.py#L330


推荐阅读