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
Linda Hamiltonoriginal
2024-12-06 19:04:12792parcourir

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 la variable item, 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 à son 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 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")])

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!

Déclaration:
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