Enregistrer un dict à un fichier

Enregistrer un dict à un fichier
Le dictionnaire est un objet très célèbre à Python. Et c'est une collection de clés et de valeurs. La clé du dict doit être immuable, et elle peut être entière, flottante, chaîne, mais ni une liste ni un dict lui-même ne peuvent être une clé. Donc, parfois, nous devons enregistrer les objets dicts dans un fichier. Nous allons donc voir différentes méthodes pour enregistrer un objet dict dans un fichier.

Nous pouvons écrire le dictionnaire dans un fichier de Python de différentes manières comme:

  1. Fichier de valeur séparée par des virgules (.CSV)
  2. Fichier JSON (.JSON)
  3. Fichier texte (.SMS)
  4. Fichier de cornichon (.pkl)

Nous allons expliquer toutes les méthodes ci-dessus.

Méthode 1: Enregistrer le dictionnaire au format CSV

Pour enregistrer le dictionnaire dans le CSV (valeurs séparées de virgules), nous utilisons le module CSV. Les valeurs séparées des virgules pour sauver le dict Python sont la méthode la plus courante et la plus célèbre. La plupart des programmeurs utilisent cette méthode uniquement pour enregistrer le dict à un fichier. Pour enregistrer le dictionnaire dans un fichier car CSV est très facile car nous devons transférer les données en tant que chaîne.

Exemple_1: dict_to_csv.py

# dict_to_csv.py
Importer CSV
dict_sample = 'name': 'Linuxhint', 'City': 'Ca', 'Education': 'Engineering'
avec Open ('Données.csv ',' w ') comme f:
pour la clé dans dict_sample.clés():
F.écrire ("% s,% s \ n"% (clé, dict_sample [key])))

Ligne 2: Nous importons le module CSV Python.

Ligne 4: Nous avons créé un exemple de données de dict. Nous allons essayer de l'enregistrer sous la forme d'un fichier CSV.

Ligne 6: Nous utilisons ici la déclaration «avec» pour rédiger le fichier CSV. L'instruction «avec» gère automatiquement l'exception du traitement pendant la lecture ou l'écriture d'un fichier. Nous ouvrons les données du fichier.CSV en mode écriture et attribuez cet objet à la variable F.

Ligne 7, Nous exécutons une boucle pour l'extrait de la clé, et dans la ligne suivante, il écrit la clé et la clé_value d'un fichier CSV. Donc, cette boucle fonctionnera jusqu'à ce qu'il y ait des données.

Des données de sortie.CSV

Nom, Linuxhint
Ville, Californie
Éducation, ingénierie

Ainsi, ce qui précède montre le fichier de sortie après avoir écrit sur les données.CSV.

Maintenant, nous comprenons comment enregistrer le dict à un fichier sous la forme de CSV. Essayons avec un autre exemple où nous voulons écrire une liste d'objets dicts dans le fichier CSV.

Exemple_2: dict_to_csv_2.py

# dict_to_csv_2.py
Importer CSV
CSVColumns = ['City', 'Country', 'Rank']
dictdemo = [
'City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]]
csvfilename = "Données.csv "
essayer:
avec ouvert (csvfilename, 'w') comme f:
écrivain = CSV.DictWriter (F, FieldNames = CSVColumns)
écrivain.WriteHeader ()
pour les données dans DictDemo:
écrivain.Writerow (données)
sauf ioerror:
imprimer ("Got Error")

Ligne 3 à 12: Nous importons le module Python CSV et créons une liste d'objets dictés. Nous avons également créé une liste de noms de colonnes.

Ligne 13: Nous avons attribué le nom du fichier CSV à une variable.

Ligne 15: Nous utilisons l'instruction «avec», et l'instruction a attribué l'objet de retour de méthode __enter__ à la variable F.

Ligne 16 à 19: Après avoir attribué l'objet de retour à la variable F, nous avons appelé une méthode DictWriter du module CSV et passé deux paramètres (nom de fichier (f) et noms de colonne). Ensuite, nous appelons une autre méthode writeHeader () qui écrira la première ligne du fichier CSV, qui est généralement le nom des champs. Ensuite, nous exécutons une boucle pour la liste des objets dicts et écrivons un par un au fichier CSV à l'aide de la méthode writerow ().

Méthode 2: Enregistrez le dict dans un fichier texte au format JSON (mode ajoute)

Nous pouvons également enregistrer les objets dicts sous la forme du JSON dans un fichier. Le code ci-dessous expliquera la même chose. Ce code explique également comment nous pouvons ajouter un nouveau JSON à une liste existante de JSON.

Exemple: dict_to_file_asjson.py

#dict_to_file_asjson.py
Importer JSON
dictdemo = [
'City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]]
filename = "dict.JSON "
# Écriture de la liste des objets dicteurs à un fichier
avec ouvert (nom de fichier, mode = 'w') comme f:
json.Dump (dictdemo, f)
# Écriture d'un nouvel objet dict à un fichier en tant qu'ajout et écrasez l'ensemble du fichier
avec ouvert (nom de fichier, mode = 'w') comme f:
dictdemo.APPENDE ('City': 'Bejing', 'Country': 'China')
json.Dump (dictdemo, f)

Sortir: dict.json

["City": "New York", "Country": "USA", "Rank": 3,
"City": "Sydney", "Country": "Australie", "Rank": 5,
"City": "Dubai", "Country": "UAE", "Rank": 10,
"City": "Mumbai", "Country": "Inde", "Rank": 17,
"City": "Bejing", "Country": "Chine", "Rank": 7,
"City": "Bejing", "Country": "Chine"
]]

Ligne 1 à 13: Nous importons le module JSON. Ensuite, nous créons une liste d'objets dicts pour la démo. Ensuite, nous avons attribué le nom du fichier JSON à un nom de fichier variable.

Ligne 15 à 17: Nous utilisons la déclaration 'avec' pour ouvrir le fichier JSON pour écrire, puis nous utilisons le JSON.Méthode de vidage pour convertir les objets dict en JSON, puis écrire dans le fichier.

Ligne 20 à 22: Ces lignes sont très importantes car ce qui va se passer? Si nous essayons d'ajouter de nouveaux objets JSON aux fichiers déjà écrits. Les données précédentes seront perdues en raison de l'écrasement. Ensuite, nous pouvons utiliser le nom de la liste des dicteurs précédents comme nous l'avons fait (dictDemo), puis nous ajoutons le nouvel objet dedans. Et enfin, nous convertissons le fichier entier en JSON et écrasons l'ensemble du fichier.

Dans la sortie, nous pouvons voir qu'un nouvel objet JSON est ajouté à une liste JSON existante.

Méthode 3: Enregistrez les objets du dictionnaire dans un fichier sous forme txt

Nous pouvons également enregistrer le dictionnaire dans un format de chaîne normal dans le fichier. Ainsi, la méthode ci-dessous est un moyen très simple de sauver les objets du dictionnaire dans le fichier dans le formulaire de texte. Mais ce code ne fonctionnera pas si nous voulons ajouter un nouvel objet de dictionnaire au fichier car il écrasera les données précédemment écrites. Donc, pour cela, nous le verrons dans le code suivant.

Exemple: dict_to_txt.py

#dict_to_txt.py
dictdemo = [
'City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]]
filename = "dict.SMS"
# Écriture de la liste des objets dicteurs à un fichier
avec ouvert (nom de fichier, mode = 'w') comme f:
F.écrire (str (dictdemo)))

Sortir: diction.SMS

['City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7]

Ligne 1 à 11: Nous avons créé une liste d'objets de dictionnaire et attribué le nom du fichier «Dict.txt ”à un nom de fichier variable.

Ligne 14 à 15: Nous utilisons ici la déclaration «avec», qui gère automatiquement l'exception. Et nous écrivons la liste des objets dict comme une chaîne à un fichier.

Exemple: dict_to_txt_2.py

Nous avons vu comment enregistrer les objets dicts dans un fichier dans le .formulaire txt. Mais dans le code ci-dessus, il y a un problème avec l'ajout d'un nouvel objet. Ainsi, nous modifions la méthode d'ajout de «w» en «a», qui peut résoudre notre problème comme indiqué ci-dessous dans le code.

# dict_to_txt_2.py
"" ": Cvar
Ce code enregistrera les objets dicts dans le fichier avec le
mode ajoute.
"" "
dictdemo = [
'City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]]
FileName = "DICT_TO_FILE_APPENDMODE.SMS"
# Écriture de la liste des objets dicteurs à un fichier
avec ouvert (nom de fichier, mode = 'a') comme f:
F.écrire (str (dictdemo)))

Ligne 7 à 15: Nous avons créé une liste d'objets de dictionnaire et attribué le nom du fichier "DICT_TO_FILE_APPENDMODE.txt ”à un nom de fichier variable.

Ligne 18 à 19: Nous modifions le mode = 'a', et cela résoudra notre problème. La sortie ci-dessous montre que nous avons ajouté deux objets dictés dans le même fichier sans écraser les données précédentes.

Sortie: DICT_TO_FILE_APPENDMODE.SMS

['City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7]
['City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7]

Méthode 4: Enregistrez l'objet dict à un fichier en utilisant la méthode de cornichon.

Nous pouvons également enregistrer l'objet dict à un fichier à l'aide du module Python Pickle. Le module Pickle prend en charge de nombreux objets pour la sérialisation dans Python et prend également en charge les objets dictés.

# dict_to_file_use_pickle.py
corrige d'importation
dictdemo = [
'City': 'New York', 'Country': 'USA', 'RANK': 3,
'City': 'Sydney', 'Country': 'Australie', 'Rank': 5,
'City': 'Dubai', 'Country': 'EAU', 'RANK': 10,
'City': 'Mumbai', 'Country': 'India', 'Rank': 17,
'City': 'Bejing', 'Country': 'China', 'Rank': 7,
]]
filename = "picklefile.pkl "
avec ouvert (nom de fichier, «ab») comme f:
cornichon.Dump (dictdemo, f)

Ligne 3 à 13: Nous importons le cornichon du module et créons une liste d'objets dictés. Nous créons également un nom de fichier où nous sauverons nos objets dictés.

Ligne 15 à 16: Nous utilisons ici la déclaration «avec» et ouvrons le fichier avec le mode d'ajout et le format binaire. Ensuite, nous vidons les objets dicts dans le fichier.

Conclusion

Nous avons donc vu différentes méthodes pour enregistrer un objet de dictionnaire à un fichier. Cela dépend de l'utilisateur que la façon dont il souhaite enregistrer l'objet dans le fichier. Les méthodes les plus courantes pour enregistrer l'objet dict dans le fichier sont JSON et CSV. Les formats JSON et CSV sont très célèbres du point de vue de la programmation ou faciles à gérer en Python. Nous avons également vu le mode d'ajout d'enregistrement des fichiers.

Le code de cet article peut être téléchargé à partir de ce lien:

https: // github.com / shekharpandey89 / sauvegarde-dict-object-to-file