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