def data_has_value(data, search_value):
    """Recursively search for a given value.

    Args:
        data (dict, list, primitive)
        search_value (string)

    Returns:
        (bool) True or False if found
    """
    if isinstance(data, list):
        return any(data_has_value(item, search_value) for item in data)

    if isinstance(data, dict):
        return any(data_has_value(v, search_value) for v in data.values())

    return data == search_value