<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _is_cached(self, ext='.json'):
 """ Determine if ``filename`` is cached using extension ``ex`` a string. :param ext: extension used to cache ``filename``, default is '.json' :type ext: str :return: True if ``filename`` is cached using extensions ``ex`` :rtype: bool """

        # extension must start with a dot
        if not ext.startswith('.'):
            # prepend extension with a dot
            ext = '.%s' % ext
        # cache file is filename with extension
        cache_file = '%s%s' % (self.filename, ext)
        # if filename already ends with extension or there's a file with the
        # extension, then assume the data is cached
        return self.filename.endswith(ext) or os.path.exists(cache_file)