Comment réparer l’erreur « TypeError: object is not subscriptable » en Python
Essayer de récupérer des données à partir d’un objet et voir une erreur « l’objet n’est pas inscriptible » à la place ? Le problème est que vous indexez le mauvais type de données.
Découvrez tout sur les types inscriptibles et comment résoudre cette erreur.
Que signifie « subscriptable » en Python ?
Le terme « inscriptible » en Python signifie un type de données qui stocke plusieurs valeurs auxquelles vous pouvez accéder individuellement. Vous pouvez accéder à une valeur spécifique à partir d’un type de données indicible via son index, en utilisant la notation entre crochets ().
Si vous essayez d’accéder aux éléments dans un type de données qui n’est pas indexable, Python déclenche une exception « TypeError : l’objet n’est pas inscriptible ».
Les types de données suivants sont inscriptibles en Python : listes, chaînes, tuples et dictionnaires.
Cependant, les ensembles, les entiers, les flottants et les booléens sont inaccessibles via l’indexation, ils ne sont donc pas inscriptibles :
Tenter d’exécuter chacune de ces instructions génère l’exception « l’objet n’est pas inscriptible »:
Résolution de l’exception
La résolution de l’exception « l’objet n’est pas inscriptible » est plus facile une fois que vous avez compris les règles d’accès à chaque type de données. Commencez donc votre débogage Python en vérifiant le type de données de l’objet que vous essayez d’indexer.
Une fois que vous avez déterminé que le type de données n’est pas inscriptible, sa conversion en un type indexable résout le problème. Ceci est pratique si les données proviennent d’une API tierce. La conversion de types de données comme entier, flottant et booléen en une chaîne les rend inscriptibles :
Vous pouvez même manipuler les chaînes Python résultantes comme vous le souhaitez. S’il s’agit d’un entier et d’un flottant, vous souhaiterez peut-être conserver le type de données d’origine dans la sortie. Pour ce faire, convertissez la valeur résultante dans leur type de données d’origine après les avoir indexées en tant que chaînes :
Comme pour un ensemble, vous pouvez le transformer en liste. Bien que vous puissiez convertir un objet défini en une liste à l’aide de la liste (ensemble) Python one-liner, cela ne conserve pas les positions des éléments dans la liste résultante. Pour vous assurer d’obtenir une liste avec des positions d’éléments préservées, utilisez la fonction lambda de Python comme suit :
Maîtriser le débogage Python
Python a une courbe d’apprentissage fluide. Mais de simples exceptions peuvent vous décourager si vous ne savez pas comment y faire face. Apprendre à déboguer votre code et prendre votre temps pour résoudre les problèmes contribue grandement à corriger les erreurs et les exceptions de codage Python.
Comment corrigez-vous qu’un objet Python n’est pas Subscriptable ?
Comment corriger l’erreur « TypeError : ‘int’ object is not subscriptable ». Pour corriger cette erreur, vous devez convertir l’entier en un type de données itérable, par exemple, une chaîne. Et si vous obtenez l’erreur parce que vous avez converti quelque chose en entier, vous devez alors le remettre à ce qu’il était.
Qu’est-ce que l’objet de type n’est pas inscriptible signifie en Python ?
Conclusion. En résumé, l’objet NoneType n’est pas une erreur inscriptible est une erreur Python typique qui se produit lorsque nous tentons d’accéder à un index ou à une clé d’une variable qui est du type de données NoneType. Cette erreur se produit généralement lorsqu’une méthode ou une fonction renvoie None plutôt que la valeur souhaitée.
Comment rendre un objet Subscriptable en Python ?
Python renvoie l’objet TypeError n’est pas inscriptible si vous utilisez l’indexation avec la notation entre crochets sur un objet qui n’est pas indexable. C’est le cas si l’objet ne définit pas la méthode __getitem__(). Vous pouvez résoudre ce problème en supprimant l’appel d’indexation ou en définissant la méthode __getitem__.
Quel objet est Subscriptable en Python ?
En termes simples, les objets qui peuvent être indicés sont appelés objets inscriptibles. En Python, les chaînes, les listes, les tuples et les dictionnaires appartiennent à la catégorie inscriptible. Si nous utilisons un tableau[0], python implémente un tableau. __getitem__(0) pour indicer le tableau.