import six


def find_one_in_list(search_key, search_value, search_list):
    """Find one item that match searching one key and value."""
    valid = (isinstance(search_key, six.string_types) and
             isinstance(search_list, list))
    if not valid:
        raise ValueError("Invalid argument was passed.")

    if not search_key or not search_value or not search_list:
        return None

    found_list = [m for m in search_list if m.get(search_key) == search_value]
    return found_list[0] if found_list else None