Uložit dikt do souboru

Save Dict File



Dictionary je velmi známý objekt v pythonu. A je to sbírka klíčů a hodnot. Klíč diktu musí být neměnný a může to být celé číslo, float, řetězec, ale klíčem nemůže být ani samotný seznam, ani dikt. Někdy tedy musíme uložit objekty dict do souboru. Uvidíme tedy různé metody pro uložení objektu dict do souboru.

Slovník můžeme zapsat do souboru v Pythonu různými způsoby, jako například:







  1. Soubor hodnot oddělených čárkami (.csv)
  2. Soubor JSON (.json)
  3. Textový soubor (.txt)
  4. Soubor okurky (.pkl)

Vysvětlíme všechny výše uvedené metody.



Metoda 1: Uložte slovník ve formátu CSV

K uložení slovníku do CSV (Comma Separated Values) používáme modul CSV. Hodnoty oddělené čárkami pro uložení diktu pythonu jsou nejběžnější a nejznámější metodou. Většina programátorů používá tuto metodu pouze k uložení diktu do souboru. Uložení slovníku do souboru ve formátu CSV je velmi snadné, protože musíme data přenést jako řetězec.



Příklad_1: dict_to_csv.py





# dict_to_csv.py
import csv

dict_sample= {'název':'LinuxHint', 'město':'ŽE', 'vzdělávání':'Inženýrství'}

s otevřeno('data.csv', 'v') tak jakoF:
proklíčvdict_sample.klíče():
F.napsat('% S,% s n'%(klíč,dict_sample[klíč]))

Řádek 2 : Importujeme modul CSV python.

Řádek 4 : Vytvořili jsme ukázková data diktátu. Pokusíme se jej uložit ve formě souboru CSV.



Řádek 6: K zápisu souboru CSV zde používáme příkaz „with“. Příkaz ‘with’ zpracovává zpracování výjimek automaticky během čtení nebo zápisu souboru. Otevřeme soubor data.csv v režimu zápisu a přiřadíme tento objekt proměnné f.

Řádek 7 „Spouštíme smyčku for, která extrahuje klíč, a v dalším řádku zapíše klíč a hodnotu key_value do souboru CSV. Tato smyčka tedy poběží, dokud nebudou k dispozici data.

Výstup: data.csv

název,Linux Tip
město,ŽE
vzdělávání,Inženýrství

Výše uvedené tedy ukazuje výstupní soubor po zápisu na data.csv.

Nyní chápeme, jak uložit dikt do souboru ve formátu CSV. Zkusme další příklad, kdy chceme do souboru CSV napsat seznam objektů dict.

Příklad_2: dict_to_csv_2.py

# dict_to_csv_2.py

import csv

csvSloupce= ['Město', 'Země', 'Hodnost']
dictDemo= [
{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7},
]
csvFileName= 'data.csv'
Snaž se:
s otevřeno(csvFileName, 'v') tak jakoF:
spisovatel= csv.DictWriter(F,názvy polí=csvSloupce)
spisovatel.hlavička()
prodatavdictDemo:
spisovatel.spisovatel(data)
až na IOError:
tisk('Got Error')

Řádek 3 až 12: Importujeme modul CSV pythonu a vytvoříme seznam objektů dict. Vytvořili jsme také seznam názvů sloupců.

Řádek 13: Proměnné jsme přiřadili název souboru CSV.

Řádek 15: Používáme příkaz „with“ a příkaz přiřazil návratový objekt metody __enter__ k proměnné f.

Řádek 16 až 19: Po přiřazení návratového objektu k proměnné f jsme zavolali metodu DictWriter modulu CSV a předali dva parametry (název souboru (f) a názvy sloupců). Potom zavoláme jinou metodu writeheader (), která zapíše první řádek souboru CSV, což je obecně název polí. Poté spustíme smyčku for na seznamu objektů dict a zapíšeme jednu po druhé do souboru CSV pomocí metody writerow ().

Metoda 2: Uložte diktát do textového souboru ve formátu JSON (režim připojení)

Můžeme také uložit objekty dict ve formě JSON do souboru. Následující kód vysvětlí totéž. Tento kód také vysvětluje, jak můžeme přidat nový JSON do existujícího seznamu JSON.

Příklad : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

importjson

dictDemo= [
{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7},
]

název souboru= 'dict.json'

# Zápis seznamu objektů dict do souboru
s otevřeno(název souboru,režimu='v') tak jakoF:
json.skládka(dictDemo,F)

# Zápis nového objektu dict do souboru jako přílohy a přepsání celého souboru
s otevřeno(název souboru,režimu='v') tak jakoF:
dictDemo.připojit({'Město':'Bejing', 'Země':'Čína'})
json.skládka(dictDemo,F)

Výstup : dict.json

[{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7},
{'Město':'Bejing', 'Země':'Čína'}
]

Řádek 1 až 13 : Importujeme modul JSON. Poté vytvoříme seznam objektů dict pro demo. Poté jsme název souboru JSON přiřadili proměnnému názvu souboru.

Řádek 15 až 17 : K otevření souboru JSON pro zápis používáme příkaz „with“ a poté pomocí metody json.dump převedeme objekty dict na JSON a poté zapíšeme do souboru.

Řádek 20 až 22: Tyto řádky jsou velmi důležité, protože co se stane? Pokud se pokusíme přidat nové objekty JSON do již zapsaných souborů. Předchozí data budou ztracena z důvodu přepsání. Potom můžeme použít předchozí název seznamu dict jako my (dictDemo) a poté do něj připojíme nový objekt. A nakonec celý soubor převedeme na JSON a celý soubor přepíšeme.

Na výstupu vidíme, že nový objekt JSON je přidán do existujícího seznamu JSON.

Metoda 3: Uložte objekty slovníku do souboru ve formátu txt

Do souboru můžeme také uložit slovník v normálním řetězcovém formátu. Níže uvedená metoda je tedy velmi jednoduchým způsobem, jak uložit objekty slovníku do souboru v textové podobě. Tento kód však nebude fungovat, pokud chceme k souboru připojit nový objekt slovníku, protože přepíše dříve zapsaná data. Takže za tím účelem to uvidíme v dalším kódu.

Příklad: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7},
]

název souboru= 'dict.txt'

# Zápis seznamu objektů dict do souboru
s otevřeno(název souboru,režimu='v') tak jakoF:
F.napsat(p(dictDemo))

Výstup: dict.txt

[{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7}]

Řádek 1 až 11 : Vytvořili jsme seznam slovníkových objektů a název souboru dict.txt jsme přiřadili proměnnému názvu souboru.

Řádek 14 až 15 : Zde používáme příkaz „with“, který výjimku automaticky zpracovává. A píšeme seznam objektů dict jako řetězec do souboru.

Příklad: dict_to_txt_2.py

Viděli jsme, jak uložit objekty dict do souboru ve formátu .txt. Ale ve výše uvedeném kódu je jeden problém s připojením nového objektu. Změníme tedy metodu připojení z „w“ na „a“, což může vyřešit náš problém, jak je uvedeno níže v kódu.

#dict_to_txt_2.py

'' ': cvar
Tento kód uloží objekty dict do souboru s příponou
režim připojení.
'' '

dictDemo= [
{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7},
]

název souboru= 'dict_to_file_appendMode.txt'

# Zápis seznamu objektů dict do souboru
s otevřeno(název souboru,režimu='na') tak jakoF:
F.napsat(p(dictDemo))

Řádek 7 až 15 : Vytvořili jsme seznam slovníkových objektů a název souboru dict_to_file_appendMode.txt jsme přiřadili proměnnému názvu souboru.

Řádek 18 až 19 : Změníme režim = ‘a’, a tím se náš problém vyřeší. Níže uvedený výstup ukazuje, že jsme přidali dva objekty dict do stejného souboru bez přepsání předchozích dat.

Výstup: dict_to_file_appendMode.txt

[{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7}]

[{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7}]

Metoda 4: Uložte objekt dict do souboru pomocí metody pickle.

Objekt dict můžeme také uložit do souboru pomocí modulu python pickle. Modul pickle podporuje mnoho objektů pro serializaci v pythonu a také podporuje objekty dict.

# dict_to_file_use_pickle.py

import lák

dictDemo= [
{'Město':'New York', 'Země':'POUŽITÍ', 'Hodnost':3},
{'Město':'Sydney', 'Země':'Austrálie', 'Hodnost':5},
{'Město':'Dubaj', 'Země':'SAE', 'Hodnost':10},
{'Město':'Bombaj', 'Země':'Indie', 'Hodnost':17},
{'Město':'Bejing', 'Země':'Čína', 'Hodnost':7},
]

název souboru= 'picklefile.pkl'

s otevřeno(název souboru, 'pryč') tak jakoF:
lák.skládka(dictDemo,F)

Řádek 3 až 13 : Importujeme okurku modulu a vytvoříme seznam objektů dict. Vytvoříme také název souboru, kam budeme ukládat naše objekty dict.

Řádek 15 až 16 : Zde používáme příkaz „with“ a otevíráme soubor s připojovacím režimem a binárním formátem. Potom vložíme objekty dict do souboru.

Závěr

Takže jsme viděli různé metody pro uložení objektu slovníku do souboru. Záleží na uživateli, jak chce objekt uložit do souboru. Nejběžnější způsoby uložení objektu dict do souboru jsou JSON a CSV. Formáty JSON a CSV jsou velmi známé z hlediska programování nebo se snadno ovládají v pythonu. Také jsme viděli režim přidávání souborů.

Kód pro tento článek lze stáhnout z tohoto odkazu:

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