sansan0/TrendRadar · error · ValueError

JSON Feed 解析失败 ({feed_url}): {e}

Error message

JSON Feed 解析失败 ({feed_url}): {e}

What it means

Error "JSON Feed 解析失败 ({feed_url}): {e}" thrown in sansan0/TrendRadar.

Source

Thrown at trendradar/crawler/rss/parser.py:112

            return False

    def _parse_json_feed(self, content: str, feed_url: str = "") -> List[ParsedRSSItem]:
        """
        解析 JSON Feed 1.1 格式

        JSON Feed 规范: https://www.jsonfeed.org/version/1.1/

        Args:
            content: JSON Feed 内容
            feed_url: Feed URL(用于错误提示)

        Returns:
            解析后的条目列表
        """
        try:
            data = json.loads(content)
        except json.JSONDecodeError as e:
            raise ValueError(f"JSON Feed 解析失败 ({feed_url}): {e}")

        items_data = data.get("items", [])
        if not items_data:
            return []

        items = []
        for item_data in items_data:
            item = self._parse_json_feed_item(item_data)
            if item:
                items.append(item)

        return items

    def _parse_json_feed_item(self, item_data: Dict[str, Any]) -> Optional[ParsedRSSItem]:
        """解析单个 JSON Feed 条目"""
        url = item_data.get("url", "") or item_data.get("external_url", "")

        title = item_data.get("title", "")

View on GitHub (pinned to 8ee26026ba)

Solutions

  1. 确认 feed_url 返回的是合法 JSON Feed 格式
  2. 检查返回内容是否为 HTML 错误页或被截断
  3. 修正或更换该 JSON Feed 源

Example fix

curl -s https://example.com/feed.json | python -m json.tool  # 校验 JSON

When it happens

Trigger: Thrown at trendradar/crawler/rss/parser.py:112 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sansan0/TrendRadar@8ee26026ba (2026-08-15). Data as JSON: /api/errors/c94f765b4663a675. Report an issue: GitHub.