Better text python JSON

This commit is contained in:
Quentin Dufour 2017-01-22 22:42:21 +01:00
parent a5b40b3817
commit 0ed7f75ff5
1 changed files with 15 additions and 10 deletions

View File

@ -39,14 +39,15 @@ Pas très pratique, mais il doit bien y avoir une solution !
## Ecrivons la liste des livres dans un fichier ## Ecrivons la liste des livres dans un fichier
La solution est donc d'écrire la liste des livres dans un fichier. La solution est donc d'écrire la liste des livres dans un fichier.
Oui, mais c'est pas si simple. Comment je vais faire ? Oui, mais c'est pas si simple.
Je vais séparer mes livres par des virgules ? Si mon titre contient une virgule, que va t'il se passer ?
Un livre sur chaque ligne alors ? Et si on veut rajouter d'autres informations après ?
Mais ça veut dire que l'on va devoir écrire une fonction qui va convertir notre tableau en une chaine de caractère que l'on va enregistrer dans notre fichier, * Comment je vais faire ?
ainsi qu'une autre fonction qui va lire une chaine de caractère d'un fichier et la transformer en fichier. * Séparer mes livres par des virgules ?
* Si mon titre contient une virgule, que va t'il se passer ?
* Un livre sur chaque ligne alors ?
* Et si on veut rajouter d'autres informations après ? Comme l'auteur ?
Dans notre cas, c'est plutot simple mais ça peut vite se complexifier : Avec juste un titre, c'est plutot simple, on écrit un titre par ligne :
```python ```python
import os import os
@ -92,7 +93,9 @@ while True:
* On doit convertir notre variable (tableau, dictionnaire) en chaine de caractère * On doit convertir notre variable (tableau, dictionnaire) en chaine de caractère
* On doit écrire ou lire un fichier * On doit écrire ou lire un fichier
## Un modèle plus compliqué, impossible de convertir à la main le tableau en chaine de caractère La deuxième partie est simple et ne change pas, mais la première semble assez bancale.
## Si on complexifie, ça ne marche plus
Imaginons qu'à la place d'un simple titre, on veuille stocker plus d'informations : Imaginons qu'à la place d'un simple titre, on veuille stocker plus d'informations :
@ -109,9 +112,11 @@ while True:
``` ```
On devrait alors modifier les parties conversions des fonctions charger et sauvegarder. On devrait alors modifier les parties conversions des fonctions charger et sauvegarder.
Mais est-ce que l'ordinateur ne pourrait pas de lui-même convertir notre tableau en texte ? Et ces dernières deviendraient vraiment compliquées.
Oui, on appelle ça sérializer et déserializer des données (magnifique anglicisme au passage).
Et JSON est une manière de faire ça, de convertir un tableau, un dictionnaire python, etc. en texte et vice-versa. *Mais est-ce que l'ordinateur ne pourrait pas de lui-même convertir notre tableau en texte ?*
Oui, on appelle ça sérializer et déserializer des données (magnifique anglicisme au passage). Et JSON est une manière de faire ça, de convertir un tableau, un dictionnaire python, etc. en texte et vice-versa.
## Découvrons JSON ## Découvrons JSON