You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派+Python新手:如何从Google Cloud Vision返回的JSON提取特定数据?

从Google Cloud Vision的JSON响应中提取特定数据

嘿,作为刚接触Raspberry Pi和Python的新手,能搞定Google Cloud Vision的配置已经超棒啦!提取JSON里的特定数据其实很直观,我来给你一步步拆解~

首先,你拿到的这个JSON结构是Google Cloud Vision人脸检测的标准响应格式:responses是一个列表(对应你上传的每张图片),里面的每个元素包含faceAnnotations列表(对应图片里检测到的每张脸)。我们可以直接用Python的字典操作来提取想要的数据。

第一步:把响应转换成可操作的Python对象

如果你是用Google Cloud的Python客户端库调用的API,返回的response本身已经是Python字典了,不需要额外转换。如果是拿到的JSON字符串,先用json.loads()转成字典:

import json

# 假设你拿到的是JSON字符串
json_str = '{"responses": [{"faceAnnotations": [{"angerLikelihood": "UNLIKELY", ...}]}]}'
response = json.loads(json_str)

第二步:提取核心数据

我们以你的示例响应为例,一步步提取常用字段:

1. 提取第一张脸的标注信息

# 获取第一张图片的分析结果(responses是列表,默认取第一个元素)
image_result = response['responses'][0]
# 获取图片里的所有人脸标注(如果有多张脸,这个列表会有多个元素)
face_list = image_result['faceAnnotations']
# 取第一张脸的详细数据
first_face = face_list[0]

2. 提取情绪可能性(比如愤怒、模糊程度)

# 提取愤怒可能性
anger_level = first_face['angerLikelihood']
print(f"愤怒可能性:{anger_level}")

# 提取模糊程度
blur_level = first_face['blurredLikelihood']
print(f"人脸模糊程度:{blur_level}")

3. 提取人脸检测的置信度

confidence = first_face['detectionConfidence']
# 保留四位小数输出更易读
print(f"人脸检测置信度:{confidence:.4f}")

4. 提取人脸的边界框坐标

boundingPoly里的vertices是四个顶点的坐标,注意有些顶点可能只包含x或y值,用.get()方法可以避免报错:

vertices = first_face['boundingPoly']['vertices']
# 整理成上下左右四个角的坐标
bounding_box = {
    '左上角': (vertices[0]['x'], vertices[0].get('y', 0)),
    '右上角': (vertices[1]['x'], vertices[1].get('y', 0)),
    '右下角': (vertices[2]['x'], vertices[2]['y']),
    '左下角': (vertices[3]['x'], vertices[3]['y'])
}
print("人脸边界框坐标:", bounding_box)

处理多张脸的情况

如果图片里有多张脸,用循环遍历face_list即可:

for idx, face in enumerate(face_list):
    print(f"\n第{idx+1}张脸的数据:")
    print(f"愤怒可能性:{face['angerLikelihood']}")
    print(f"检测置信度:{face['detectionConfidence']:.4f}")

小提示

  • 如果不确定某个字段是否存在,用face.get('字段名', 默认值)的方式,比如face.get('joyLikelihood', 'UNKNOWN'),这样不会因为缺少字段抛出KeyError。
  • 如果你用的是Google Cloud Vision的客户端库,也可以直接调用对象的属性(比如face.anger_likelihood),不过直接操作字典更直观,适合新手理解结构。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:40:03