import pymysql print('检查列表中显示为空的疑似错误标注...') try: conn = pymysql.connect( host='rm-f8ze60yirdj8786u2wo.mysql.rds.aliyuncs.com', port=3306, user='root', password='csqz@20255', db='csqz-client', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) print('数据库连接成功') cursor = conn.cursor() # 查询所有suspected_error字段不为NULL的成员 query = """ SELECT id, name, simplified_name, suspected_error FROM family_member_info WHERE suspected_error IS NOT NULL ORDER BY name """ cursor.execute(query) members = cursor.fetchall() print(f'\n找到 {len(members)} 个成员的suspected_error字段不为NULL') print('\n检查suspected_error字段值:') print('-' * 80) empty_count = 0 for member in members: se = member['suspected_error'] se_type = type(se) se_repr = repr(se) se_len = len(se) if isinstance(se, str) else 0 se_trimmed = se.strip() if isinstance(se, str) else '' se_trimmed_len = len(se_trimmed) # 检查是否为空或只包含空白字符 if not se or se_trimmed == '': empty_count += 1 print(f'ID: {member["id"]}, 姓名: {member["name"]}, 疑似错误标注: {se_repr}, 类型: {se_type}, 长度: {se_len}, 去除空白后长度: {se_trimmed_len}') print('-' * 80) print(f'\n其中 {empty_count} 个成员的疑似错误标注为空') # 检查前端显示为空的具体记录 print('\n检查前端显示为空的记录:') front_end_empty_ids = [2929, 1831, 1835, 1907, 1802, 1857, 1989, 1941, 1967, 1972] for member_id in front_end_empty_ids: cursor.execute("SELECT id, name, suspected_error FROM family_member_info WHERE id = %s", (member_id,)) record = cursor.fetchone() if record: se = record['suspected_error'] print(f'ID: {record["id"]}, 姓名: {record["name"]}, 疑似错误标注: {repr(se)}, 长度: {len(se) if isinstance(se, str) else 0}') conn.close() except Exception as e: print(f'Error: {e}')