[BUG] JSONLoader rejects valid UTF-8 BOM files

Chiusa Adatta ai principianti
#8,022 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@Vidit-Ostwal ci sta già lavorando.

Dal 12/10/2026.

  • #8023 di @zouyonghe — integrata
  • #8042 di @varun-projects — chiusa senza merge
  • #8064 di @tandede — chiusa senza merge

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
data

Direzione di ricerca

Il bug si trova in JSONLoader, in crewai_tools/rag/loaders/json_loader.py, che apre i file con encoding="utf-8" prima di chiamare json.loads. Inizia eseguendo lo script di riproduzione presente nell'issue, che scrive un file con prefisso BOM e chiama JSONLoader().load su di esso, poi verifica dove viene impostato metadata["parse_error"]. Il lavoro è completato quando il file con BOM produce lo stesso contenuto analizzato e gli stessi metadati del corrispettivo senza BOM.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Description

JSONLoader treats a valid UTF-8 JSON file with a leading BOM as malformed JSON. The loader opens files with plain encoding="utf-8", and json.loads() rejects the resulting \ufeff prefix. The same JSON without BOM parses normally.

Reproduction

from pathlib import Path
from tempfile import TemporaryDirectory
from crewai_tools.rag.loaders.json_loader import JSONLoader
from crewai_tools.rag.source_content import SourceContent

with TemporaryDirectory() as directory:
    path = Path(directory) / "data.json"
    path.write_bytes(b"\xef\xbb\xbf{\"message\": \"hello\"}")
    result = JSONLoader().load(SourceContent(path))
    print(result.metadata, result.content)

Actual: metadata["parse_error"] is set and content retains the BOM-prefixed raw text.
Expected: same parsed content/metadata as the equivalent BOM-free JSON file.

Verified on CrewAI source main d38ceafb68c6ad33196c9ac052b9b67e74dab37c, Python 3.12.15, no network/model/credentials. This is distinct from CrewAI CSV BOM reports (#7466 and its existing PRs); public search found no JSONLoader/BOM issue or PR.

AI-assisted investigation and issue writing; llm-generated label required.

Lingua principale
Python
Stelle
60.4k
Fork
9k
Merge medio
1g 5h
PR unite (30g)
190

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di crewAIInc/crewAI

Tutte le issue di crewAIInc/crewAI

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.