from simple_salesforce import Salesforce import pandas as pd sf = Salesforce(username="yourSFusername",password="youSFpassword", security_token="yourSFsecuritytoken") Group_Members = sf.query_all("Select GroupId,UserOrGroupId from GroupMember") Active_Users = sf.query_all("Select Username,Name,Id from User where isActive = True") Groups = sf.query_all("Select Id,Name,Type from Group") Group_Members_DF = pd.DataFrame(Group_Members['records']) Users_DF = pd.DataFrame(Active_Users['records']) Users_DF = Users_DF.drop(columns=['attributes']) Groups_DF = pd.DataFrame(Groups['records']) Groups_DF = Groups_DF.drop(columns=['attributes']) def get_user_name(user_id): for index, name in Users_DF.iterrows(): if user_id == name['Id']: print("\t"+name['Name']) def get_members(group_id): result = Group_Members_DF.loc[Group_Members_DF['GroupId'] == group_id] for index, member in result.iterrows(): get_user_name(member["UserOrGroupId"]) def get_groups_with_users(): for index, group in Groups_DF.iterrows(): group_id = group['Id'] group_name = group['Name'] print(str(group_name)+":") get_members(group_id) get_groups_with_users()