Maison >développement back-end >Tutoriel Python >Pourquoi est-ce que j'obtiens « TypeError : les indices de chaîne doivent être des entiers » lors de la conversion de JSON en CSV en Python ?
Dans votre code Python pour analyser JSON et convertissez-le en CSV, vous rencontrez le message "TypeError : les indices de chaîne doivent être erreur "entiers". Pour résoudre ce problème, examinons le problème sous-jacent et proposons une solution.
L'erreur « TypeError : les indices de chaîne doivent être des entiers » indique que vous essayez d'accéder à une variable de type chaîne à l'aide d'un index. Dans votre cas, vous essayez d'accéder aux valeurs d'un objet JSON à l'aide d'indices.
Par exemple, dans votre extrait de code :
csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
Vous essayez d'accéder aux valeurs de divers champs de l'objet JSON en utilisant des noms d'index, tels que "gravatar_id", "position" et "number". Cependant, ces champs ne sont pas des indices mais des clés d'un objet de type dictionnaire.
Pour résoudre cette erreur et accéder correctement aux valeurs des champs de l'objet JSON, vous devez utiliser la syntaxe d'accès au dictionnaire. Voici le code corrigé à l'aide de la fonction JSON.loads() :
import json import csv with open('issues.json', 'r') as f: data = json.load(f) with open('issues.csv', 'wb+') as f: csv_file = csv.writer(f) csv_file.writerow(["gravatar_id", "position", "number"]) for item in data['issues']: csv_file.writerow([item.get('gravatar_id'), item.get('position'), item.get('number')])
Ce code utilise la méthode get() pour récupérer les valeurs des champs spécifiés à partir de l'objet JSON de type dictionnaire.
En remplaçant l'indexation de chaîne incorrecte par la syntaxe d'accès au dictionnaire appropriée, vous pouvez analyser avec succès le fichier JSON et extraire les valeurs souhaitées dans le fichier CSV, sans rencontrer le message "Les index de chaîne doivent être erreur "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!