The best approach here is to decorate the sort key ... Python sorts the tuple with the tuple components in order, so create a tuple key with your sort criteria:
sorted(list_of_dicts, key=lambda d: (d['Name'] == 'TOTAL', d['Name'].lower()))
The result is a sort key:
- (True, 'total') for {'Name': 'TOTAL', 'Rank': 100}
- (False, 'woo company') for {'Name': 'Woo Company', 'Rank': 15}
- (False, 'abc company') for {'Name': 'ABC Company', 'Rank': 20}
Since False sorts earlier than True, those whose names are not TOTAL are concatenated, then sorted alphabetically, and TOTAL ends at the end.