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.
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
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.
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