为什么 google 视频情报的输出不是 JSON 格式

Why output from google video intelligence not in JSON format

我一直在尝试使用来自 https://cloud.google.com/video-intelligence/docs/libraries 的 google 视频智能 API,并且我尝试了完全相同的代码。响应输出应该是 json 格式,但输出是 google.cloud.videointelligence_v1.types.AnnotateVideoResponse 或类似的格式。

我尝试了很多资源中的代码,最近尝试了 https://cloud.google.com/video-intelligence/docs/libraries 中的代码,但仍然没有给出 JSON 输出。当我检查我得到的输出类型时,我得到了什么:

type(result)

google.cloud.videointelligence_v1.types.AnnotateVideoResponse

那么,如何从中获得 JSON 响应?

如果您指定 outputUri,结果将以 json 格式存储在您的 GCS 存储桶中。 https://cloud.google.com/video-intelligence/docs/reference/rest/v1/videos/annotate

您似乎没有将结果存储在 GCS 中。相反,您是通过 GetOperation 调用获得结果,结果采用 AnnotateVideoResponse 格式。

我已经找到了解决办法。我所要做的就是导入这个

from google.protobuf.json_format import MessageToJson
import json

和运行

job = client.annotate_video(
                            input_uri='gs://xxxx.mp4',
                            features=['OBJECT_TRACKING'])
result = job.result()

serialized = MessageToJson(result)

a = json.loads(serialized)
type(a)

我所做的是将结果转化为字典。 或者要了解更多信息,请尝试转到此 link:google forums thread