'NoneType' object has no attribute 'split'
Explication
Causes courantes
- **`dict.get(cle)`** sur une clé absente renvoie `None`, puis vous appelez une méthode dessus. - **Une fonction sans `return`** dont vous utilisez le résultat. - **`re.match()` / `re.search()`** renvoient `None` quand il n'y a pas de correspondance, puis `.group()`. - **Une méthode en place** : `nom = liste.append(x)` met `nom` à `None`. - **Une variable d'environnement absente** : `os.environ.get("VAR")` → `None`.
1. Vérifiez la valeur avant d'appeler la méthode
ligne = config.get("nom")
if ligne is not None:
prenom = ligne.split(" ")[0]
else:
prenom = "Inconnu"
2. Fournissez une valeur par défaut
ligne = config.get("nom", "") # "" au lieu de None
prenom = ligne.split(" ")[0] # ne plante plus
3. Cas des expressions régulières
import re
m = re.search(r"(\d{4})", texte)
if m: # ne pas faire m.group(1) directement
annee = m.group(1)
4. En production : remontez à la source du None
Plutôt que de multiplier les if x is not None, corrigez l'endroit qui produit le None (clé manquante, requête vide). Le message d'erreur indique l'attribut (split) : repérez quelle variable devait être une chaîne et ne l'est pas.
Comment prevenir cette erreur
Besoin d'aide sur votre projet ?
Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.
Nous contacter