61 lines
1.4 KiB
Markdown
61 lines
1.4 KiB
Markdown
## Sérialisation, Dé-sérialisation
|
|
|
|
Sérialisation => On prend des objets, on transforme en JSON
|
|
Dé-sérialisation => On prend un JSON, on transforme en objets
|
|
|
|
### Exemple de sérialisation
|
|
|
|
On prend une liste classique
|
|
|
|
```py
|
|
livres = [{"titre": "1984", "auteur": "Orwell"}, {"titre": "LSDA", "auteur": "Tolkien"}]
|
|
```
|
|
|
|
On peut donc traiter un fichier JSON avec la fonction `open` et le sérialiser avec `dump` :
|
|
|
|
```py
|
|
import json
|
|
|
|
livres = [{"titre": "1984", "auteur": "Orwell"}, {"titre": "LSDA", "auteur": "Tolkien"}]
|
|
|
|
# file=/path/ , w-rite
|
|
fichier_json = open("livres.json", "w")
|
|
json.dump(livres, fichier_json)
|
|
fichier_json.close()
|
|
```
|
|
|
|
Ou, avec un `Context-Manager` au lieu d'ouvrir et de fermer :
|
|
|
|
```py
|
|
import json
|
|
|
|
livres = [{"titre": "1984", "auteur": "Orwell"}, {"titre": "LSDA", "auteur": "Tolkien"}]
|
|
|
|
with open("livres.json", "w") as fichier_json:
|
|
json.dump(livres, fichier_json, indent= 4)
|
|
```
|
|
|
|
### Exemple de dé-sérialisation
|
|
|
|
```py
|
|
import json
|
|
|
|
livres = [{"titre": "1984", "auteur": "Orwell"}, {"titre": "LSDA", "auteur": "Tolkien"}]
|
|
|
|
with open("livres.json", "w") as fichier_json:
|
|
objet = json.load(fichier_json)
|
|
|
|
print(objet)
|
|
|
|
objet.append({"titre": "Alice aux pays", "auteur": "Caroll"})
|
|
|
|
with open("livres.json", "w") as fichier_json:
|
|
json.dump(objet, fichier_json, indent= 4)
|
|
```
|
|
|
|
## Les classes
|
|
|
|
### Méthodes "Dunder"
|
|
|
|
- __init__
|
|
- __repr__ |