From 14c70e3c7634b0b28b46f3e3ec31754a41c7c734 Mon Sep 17 00:00:00 2001 From: ZZX9599 <536509593@qq.com> Date: Wed, 3 Sep 2025 22:06:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E8=84=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/face_service.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/service/face_service.py b/service/face_service.py index 8b86042..c554153 100644 --- a/service/face_service.py +++ b/service/face_service.py @@ -234,3 +234,36 @@ async def delete_face( raise Exception(f"删除人脸记录失败:{str(e)}") from e finally: db.close_connection(conn, cursor) + + +def get_all_face_name_with_eigenvalue() -> dict: + """ + 获取所有人脸的名称及其对应的特征值,组成字典返回 + key: 人脸名称(name) + value: 人脸特征值(eigenvalue) + 注:过滤掉name为None的记录,避免字典key为None的情况 + """ + conn = None + cursor = None + try: + conn = db.get_connection() + cursor = conn.cursor(dictionary=True) + + # 只查询需要的字段,提高效率 + query = "SELECT name, eigenvalue FROM face WHERE name IS NOT NULL" + cursor.execute(query) + faces = cursor.fetchall() + + # 构建name到eigenvalue的映射字典 + face_dict = { + face["name"]: face["eigenvalue"] + for face in faces + } + + return face_dict + + except MySQLError as e: + raise Exception(f"获取人脸名称与特征值失败:{str(e)}") from e + finally: + # 确保资源释放 + db.close_connection(conn, cursor) \ No newline at end of file