Diagnostic

'1,25' utilise une virgule comme séparateur décimal, alors que le parseur attend un point. La virgule est donc considérée comme un caractère invalide.

Correction

Si le format d’entrée est garanti avec une virgule décimale et sans séparateur de milliers :

from decimal import Decimal

valeur = Decimal("1,25".replace(",", "."))

valeur vaut alors Decimal("1.25").

En production, validez le format avant conversion afin d’éviter les ambiguïtés telles que '1,234', qui peut signifier 1.234 ou 1234 selon la convention :

import re
from decimal import Decimal

def parse_decimal_fr(texte: str) -> Decimal:
texte = texte.strip()
if not re.fullmatch(r"[+-]?\d+(?:,\d+)?", texte):
raise ValueError("Format décimal français invalide")
return Decimal(texte.replace(",", "."))

Si les séparateurs de milliers doivent être acceptés, utilisez un parseur localisé avec une locale explicitement définie, par exemple Babel :

from babel.numbers import parse_decimal

valeur = parse_decimal("1,25", locale="fr_FR")

Pour les montants monétaires, préférez Decimal à float.