Maison > développement back-end > Tutoriel Python > 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 ?

Linda Hamilton
Libérer: 2024-12-06 19:04:12
original
806 Les gens l'ont consulté

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
Copier après la connexion

Application de la solution

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

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
Copier après la connexion

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

csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])
Copier après la connexion

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

item_dict = json.loads(item)
csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])
Copier après la connexion

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal