Parses the JSON data and returns it

        :param db_file: File and path pointing to the JSON file to parse
        :param language: The user's language (en, es, etc.)
        :raises: All kind of exceptions if the file doesn't exist or JSON is
                 invalid.
        :return: None

def load_from_json(db_file, language=DEFAULT_LANG):
        """
        Parses the JSON data and returns it

        :param db_file: File and path pointing to the JSON file to parse
        :param language: The user's language (en, es, etc.)
        :raises: All kind of exceptions if the file doesn't exist or JSON is
                 invalid.
        :return: None
        """
        # There are a couple of things I don't do here, and are on purpose:
        #   - I want to fail if the file doesn't exist
        #   - I want to fail if the file doesn't contain valid JSON
        raw = json.loads(file(db_file).read())

        # Here I don't do any error handling either, I expect the JSON files to
        # be valid
        data = {
            '_id': raw['id'],
            'title': raw['title'],
            'description': DBVuln.handle_ref(raw['description'], language=language),
            'severity': raw['severity'],
            'wasc': raw.get('wasc', []),
            'tags': raw.get('tags', []),
            'cwe': raw.get('cwe', []),
            'owasp_top_10': raw.get('owasp_top_10', {}),
            'fix_effort': raw['fix']['effort'],
            'fix_guidance': DBVuln.handle_ref(raw['fix']['guidance'], language=language),
            'references': DBVuln.handle_references(raw.get('references', [])),
            'db_file': db_file,
        }

        return data