如何从AWS Cognito获取仅包含姓名与邮箱的用户列表?
提取AWS Cognito用户的name和email字段
调用AWS Cognito的list_users接口后,返回的响应包含大量元数据。要仅获取用户的name和email字段,你可以遍历响应中的Users数组,提取每个用户对应属性并整理成简洁的结构:
import boto3 client = boto3.client('cognito-idp') def lambda_handler(): response = client.list_users( UserPoolId='ap-south-1_w9By25vrR', AttributesToGet=['email','name'] ) # 筛选并整理用户的name和email filtered_users = [] for user in response['Users']: # 将属性列表转为键值对字典 user_attributes = {attr['Name']: attr['Value'] for attr in user['Attributes']} filtered_users.append({ 'name': user_attributes.get('name'), 'email': user_attributes.get('email') }) return filtered_users
说明:
- 从接口响应的
response['Users']中获取原始用户数据数组 - 每个用户的属性存储在
Attributes字段中,通过字典推导式将其转换为更易读取的键值对形式 - 使用
get方法避免因属性缺失导致的报错,最终返回仅包含name和email的用户列表
内容的提问来源于stack exchange,提问作者Showri Kranthi
相关产品推荐
相关产品推荐

