I think if you do:
if not body['schedule'].get('tenant'):

it would be equivalent since get() will return None if it's not found or the actual value if it is and both None and "" evaluate to False.