"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre « TypeError : les indices de chaîne doivent être des entiers » lors de l'analyse des données JSON ?

Comment résoudre « TypeError : les indices de chaîne doivent être des entiers » lors de l'analyse des données JSON ?

Publié le 2024-12-21
Parcourir:427

How to Resolve

Éviter "TypeError : les indices de chaîne doivent être des entiers"

Lorsque vous essayez de manipuler les données d'un fichier JSON dans un format CSV compréhensible, vous pouvez rencontrer le message "TypeError : les indices de chaîne doivent être des entiers". Cette erreur survient lors de l'accès aux champs d'une chaîne comme s'il s'agissait d'un dictionnaire. Explorons la solution.

Comprendre l'erreur

Pour comprendre l'erreur, il est important de noter que les chaînes en Python ne peuvent pas être indexées comme les dictionnaires. Dans les dictionnaires, les clés sont accessibles sous forme de chaînes, par exemple dictionnaire["clé"]. En revanche, l'accès aux champs d'une chaîne doit se faire à l'aide d'indices entiers, comme le montre l'exemple suivant :

mystring = "helloworld"
print(mystring[0])  # Outputs 'h', as '0' refers to the first character

Application de la solution

Dans votre code, vous essayez d'accéder aux champs de l'élément variable, qui est de type string :

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])

Pour résoudre le problème, convertissez la variable item en dictionnaire avant d'accéder à ses champs :

csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])

Vous pouvez également utiliser la fonctionloads() du module json pour convertir directement la chaîne d'élément en un dictionnaire :

item_dict = json.loads(item)
csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])

Ces modifications garantiront que vous accédez aux champs à l'aide d'index entiers, résolvant ainsi l'erreur "TypeError : les indices de chaîne doivent être des entiers" erreur.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3