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 ?

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 ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-05 01:50:10187parcourir

Why Am I Getting

Dépannage : "TypeError : les indices de chaîne doivent être des entiers" dans la conversion JSON en CSV

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!

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