from typing import List
from typing import Any
from typing import Optional


def get_(arr: List[Any], value: Any, key: str) -> Optional[Any]:
    """Get object with requested attrubute value
    from list

    :param arr: List to search elements in
    :param value: Value to search
    :param key: Key to search value of
    :return: First object if exists, else None
    """
    try:
        search_results = [obj for obj in arr if obj[key] == value]
    except KeyError:
        raise KeyError('Key "%s" does not exist in list element(s)' % key)

    if search_results:
        return list(search_results)[0]

    return None