Bonjour,
J'ai un fichier Json qui je charge dans une liste. Le fichier comporte des éléments dont chacun comprend une classe un nom et un prénom. Composition simplifiée avec un enregistrement initial et un "append":
Mais si j'utilise une variable, ça ne marche plus car on voit que le dernier élément est entouré de double quote. Exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 python3 >>> Eleves = [{'Classe': '6C', 'Nom': 'Dupont', 'Prenom': 'Serge'}] >>> Eleves.append({'Classe': '6C', 'Nom': 'Durand', 'Prenom': 'René'}) >>> print(Eleves) [{'Classe': '6C', 'Nom': 'Dupont', 'Prenom': 'Serge'}, {'Classe': '6C', 'Nom': 'Durand', 'Prenom': 'René'}] >>>
Ainsi, si je boucle sur ma liste, je tombe en erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> A="{'Classe': '6D', 'Nom': 'Robert', 'Prenom': 'Rémy'}" >>> Eleves.append(A) >>> print(Eleves) [{'Classe': '6C', 'Nom': 'Dupont', 'Prenom': 'Serge'}, {'Classe': '6C', 'Nom': 'Durand', 'Prenom': 'René'}, {'Classe': '6C', 'Nom': 'Durand', 'Prenom': 'René'}, "{'Classe': '6D', 'Nom': 'Robert', 'Prenom': 'Rémy'}"]
Je ne comprends pas et, bien sûr, j'ai essayé pas mal de formes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 >>> for Item in Eleves: ... print(Item["Classe"]) ... 6C 6C Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: string indices must be integers >>>
Donc ma liste ne peux plus générer de fichier Json car la conversion tombe en erreur.
Je pense que la fonction "append" ne supporte pas de variabnle mais comment faire ?
Vous imaginez bien que chaque enregistrement est construit par plusieurs saisies d'utilisateur.
Une idée ? Merci d'avance.
Partager