Uložiť dikt do súboru

Save Dict File



Slovník je veľmi známy objekt v pythone. A je to zbierka kľúčov a hodnôt. Kľúč diktátu musí byť nemenný a môže to byť celé číslo, float, reťazec, ale ani samotný zoznam, ani dikt nemôže byť kľúčom. Niekedy teda potrebujeme uložiť objekty dict do súboru. Uvidíme teda rôzne metódy na uloženie objektu dict do súboru.

Slovník môžeme zapísať do súboru v Pythone rôznymi spôsobmi, napríklad:







  1. Súbor hodnôt oddelených čiarkou (.csv)
  2. Súbor Json (.json)
  3. Textový súbor (.txt)
  4. Nakladací súbor (.pkl)

Vysvetlíme všetky vyššie uvedené metódy.



Metóda 1: Uložte slovník vo formáte CSV

Na uloženie slovníka do formátu CSV (hodnoty oddelené čiarkou) používame modul CSV. Hodnoty oddelené čiarkami na uloženie pythonského diktu sú najbežnejšou a najznámejšou metódou. Väčšina programátorov používa túto metódu iba na uloženie diktátu do súboru. Uloženie slovníka do súboru vo formáte CSV je veľmi jednoduché, pretože musíme prenášať údaje ako reťazce.



Príklad_1: dict_to_csv.py





# dict_to_csv.py
import csv

dict_sample= {'názov':'LinuxHint', 'mesto':'TO', „vzdelávanie“:„Inžinierstvo“}

s otvorené('data.csv', 'in') akof:
prekľúčvdict_sample.kľúče():
f.písať('%s, %s n'%(kľúč,dict_sample[kľúč]))

Riadok 2 : Importujeme modul CSV python.

Riadok 4 : Vytvorili sme vzorové údaje diktátu. Pokúsime sa ho uložiť vo forme súboru CSV.



Riadok 6: Na zápis súboru CSV tu používame príkaz „with“. Príkaz „with“ spracováva spracovanie výnimiek automaticky počas čítania alebo zápisu súboru. Otvoríme súbor data.csv v režime zápisu a priradíme tento objekt k premennej f.

Riadok 7 „Používame slučku for, ktorá extrahuje kľúč a v nasledujúcom riadku zapíše kľúč a hodnotu_kľúča do súboru CSV. Táto slučka teda pobeží, kým nebudú k dispozícii údaje.

Výstup: data.csv

názov,Linuxová rada
mesto,TO
vzdelávanie,Strojárstvo

Vyššie uvedené teda ukazuje výstupný súbor po zapísaní na data.csv.

Teraz chápeme, ako uložiť dikt do súboru vo formáte CSV. Skúsme ešte jeden príklad, kde chceme zapísať zoznam objektov dict do súboru CSV.

Príklad_2: dict_to_csv_2.py

# dict_to_csv_2.py

import csv

csvColumns= ['Mesto', 'Krajina', 'Poradie']
dictDemo= [
{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7},
]
csvFileName= 'data.csv'
skúsiť:
s otvorené(csvFileName, 'in') akof:
spisovateľ= csv.DictWriter(f,názvy polí=csvColumns)
spisovateľ.hlavičkár()
preúdajevdictDemo:
spisovateľ.spisovateľ(údaje)
okrem IOError:
vytlačiť(„Vyskytla sa chyba“)

Riadok 3 až 12: Importujeme modul CSV python a vytvoríme zoznam objektov dict. Vytvorili sme tiež zoznam názvov stĺpcov.

13. riadok: Premennej sme priradili názov súboru CSV.

Riadok 15: Používame príkaz „with“ a príkaz priradil návratový objekt metódy __enter__ k premennej f.

Riadok 16 až 19: Po priradení návratového objektu k premennej f sme zavolali metódu DictWriter modulu CSV a odovzdali sme dva parametre (názov súboru (f) a názvy stĺpcov). Potom zavoláme inú metódu writeheader (), ktorá zapíše prvý riadok súboru CSV, ktorý je spravidla názvom polí. Potom spustíme slučku for v zozname objektov dict a zapíšeme jednu po druhej do súboru CSV pomocou metódy writerow ().

Metóda 2: Uložte diktát do textového súboru vo formáte JSON (režim pripojenia)

Objekty dict vo forme JSON môžeme uložiť aj do súboru. Nasledujúci kód to isté vysvetlí. Tento kód tiež vysvetľuje, ako môžeme pridať nový JSON do existujúceho zoznamu JSON.

Príklad : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

importjson

dictDemo= [
{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7},
]

názov súboru= 'dict.json'

# Zapísanie zoznamu objektov dict do súboru
s otvorené(názov súboru,režim='in') akof:
json.skládka(dictDemo,f)

# Zapísanie nového objektu dict do súboru ako prílohy a prepísanie celého súboru
s otvorené(názov súboru,režim='in') akof:
dictDemo.priložiť({'Mesto':'Bejing', 'Krajina':'Čína'})
json.skládka(dictDemo,f)

Výkon : dict.json

[{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7},
{'Mesto':'Bejing', 'Krajina':'Čína'}
]

Riadok 1 až 13 : Importujeme modul JSON. Potom vytvoríme zoznam objektov dict pre demo. Potom sme priradili názov súboru JSON premennej názov súboru.

Riadok 15 až 17 : Na otvorenie súboru JSON na zápis používame príkaz „with“ a potom pomocou metódy json.dump prevádzame objekty dict na JSON a potom zapisujeme do súboru.

Riadok 20 až 22: Tieto riadky sú veľmi dôležité, pretože čo sa stane? Ak sa pokúsime pridať nové objekty JSON do už zapísaných súborov. Predchádzajúce údaje sa stratia z dôvodu prepísania. Potom môžeme použiť predchádzajúci názov zoznamu diktátov (dictDemo) a potom do neho pridáme nový objekt. A nakoniec celý súbor skonvertujeme na JSON a celý súbor prepíšeme.

Na výstupe vidíme, že nový objekt JSON je pridaný do existujúceho zoznamu JSON.

Metóda 3: Uložte objekty slovníka do súboru vo formáte txt

Do súboru môžeme uložiť aj slovník do normálneho reťazcového formátu. Nasledujúca metóda je teda veľmi jednoduchým spôsobom uloženia objektov slovníka do súboru v textovej forme. Tento kód však nebude fungovať, ak chceme k súboru pripojiť nový objekt slovníka, pretože prepíše na predtým zapísané údaje. Preto to uvidíme v nasledujúcom kóde.

Príklad: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7},
]

názov súboru= 'dict.txt'

# Zapisovanie zoznamu objektov dict do súboru
s otvorené(názov súboru,režim='in') akof:
f.písať(p(dictDemo))

Výkon: dict.txt

[{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7}]

Riadok 1 až 11 : Vytvorili sme zoznam slovníkových objektov a názov súboru dict.txt sme priradili k premennej názov súboru.

Riadok 14 až 15 : Tu používame príkaz „with“, ktorý automaticky spracováva výnimku. A píšeme zoznam objektov dict ako reťazec do súboru.

Príklad: dict_to_txt_2.py

Videli sme, ako uložiť objekty dict do súboru vo formáte .txt. Ale vo vyššie uvedenom kóde je jeden problém s pripojením nového objektu. Preto zmeníme metódu pripojenia z „w“ na „a“, čo môže vyriešiť náš problém, ako je uvedené nižšie v kóde.

#dict_to_txt_2.py

'' ': cvar
Tento kód uloží objekty dict do súboru s príponou
režim pripojenia.
'' '

dictDemo= [
{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7},
]

názov súboru= 'dict_to_file_appendMode.txt'

# Zapísanie zoznamu objektov dict do súboru
s otvorené(názov súboru,režim=„do“) akof:
f.písať(p(dictDemo))

Riadok 7 až 15 : Vytvorili sme zoznam slovníkových objektov a názov súboru dict_to_file_appendMode.txt sme priradili k premennému názov súboru.

Riadok 18 až 19 : Meníme režim = ‘a’, a tým sa náš problém vyrieši. Nasledujúci výstup ukazuje, že sme pridali dva objekty dict do rovnakého súboru bez prepísania predchádzajúcich údajov.

Výstup: dict_to_file_appendMode.txt

[{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7}]

[{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7}]

Metóda 4: Uložte objekt dict do súboru pomocou metódy nakladania.

Objekt dict môžeme tiež uložiť do súboru pomocou modulu python naberačky. Modul pickle podporuje mnoho objektov na serializáciu v pythone a podporuje aj diktované objekty.

# dict_to_file_use_pickle.py

import nálev

dictDemo= [
{'Mesto':„New York“, 'Krajina':„POUŽITIE“, 'Poradie':3},
{'Mesto':„Sydney“, 'Krajina':'Austrália', 'Poradie':5},
{'Mesto':„Dubaj“, 'Krajina':„SAE“, 'Poradie':10},
{'Mesto':„Bombaj“, 'Krajina':„India“, 'Poradie':17},
{'Mesto':'Bejing', 'Krajina':'Čína', 'Poradie':7},
]

názov súboru= 'picklefile.pkl'

s otvorené(názov súboru, 'preč') akof:
nálev.skládka(dictDemo,f)

Riadok 3 až 13 : Importujeme nakladanie modulu a vytvoríme zoznam objektov diktátu. Vytvoríme tiež názov súboru, kam budeme ukladať naše objekty diktátu.

Riadok 15 až 16 : Tu používame príkaz „with“ a otvárame súbor pomocou režimu pridávania a binárneho formátu. Potom vložíme objekty dict do súboru.

Záver

Videli sme teda rôzne metódy na uloženie objektu slovníka do súboru. Záleží na používateľovi, ako chce objekt uložiť do súboru. Najbežnejšími spôsobmi uloženia objektu dict do súboru sú JSON a CSV. Formáty JSON a CSV sú z programovacieho hľadiska veľmi známe alebo sa v pythone ľahko ovládajú. Videli sme tiež režim pridávania súborov.

Kód k tomuto článku je možné stiahnuť z tohto odkazu:

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