Spremite rječnik u datoteku

Save Dict File



Rječnik je vrlo poznat objekt u pythonu. I to je zbirka ključeva i vrijednosti. Ključ dicta mora biti nepromjenjiv, a može biti i cijeli broj, float, niz, ali niti popis niti sam dict ne mogu biti ključ. Dakle, ponekad moramo spremiti dict objekte u datoteku. Dakle, vidjet ćemo različite metode za spremanje dict objekta u datoteku.

Rječnik možemo zapisati u datoteku u Pythonu na različite načine, poput:







  1. Datoteka vrijednosti razdvojena zarezima (.csv)
  2. Json datoteka (.json)
  3. Tekstualna datoteka (.txt)
  4. Datoteka za turšiju (.pkl)

Objasnit ćemo sve gore navedene metode.



Metoda 1: Spremite rječnik u CSV formatu

Za spremanje rječnika u CSV (Zarezom odvojene vrijednosti) koristimo CSV modul. Vrijednosti odvojene zarezima za spremanje python dicta najčešća su i poznata metoda. Većina programera koristi ovu metodu samo za spremanje riječi u datoteku. Spremanje rječnika u datoteku kao CSV vrlo je jednostavno jer podatke moramo prenijeti kao niz.



Primjer_1: dict_to_csv.py





# dict_to_csv.py
uvoz csv

dict_sample= {'Ime':'LinuxHint', 'Grad':'DA', 'obrazovanje':'Inženjering'}

s otvorena('data.csv', 'u') kaof:
zaključudict_sample.ključeve():
f.pisati('% s,% s n'%(ključ,dict_sample[ključ]))

Redak 2 : Uvozimo CSV python modul.

Red 4 : Napravili smo uzorak dict podataka. Pokušat ćemo ga spremiti u obliku CSV datoteke.



Red 6: Ovdje koristimo izraz 'with' za pisanje CSV datoteke. Naredba 'with' automatski obrađuje iznimke tijekom čitanja ili pisanja datoteke. Otvorimo datoteku data.csv u načinu pisanja i dodijelimo taj objekt varijabli f.

Red 7 , Pokrećemo for petlju koja izdvaja ključ, au sljedećem retku zapisuje ključ i key_value u CSV datoteku. Dakle, ova će se petlja izvoditi sve dok nema podataka.

Izlaz: data.csv

Ime,LinuxHint
Grad,DA
obrazovanje,Inženjering

Dakle, gore navedeno prikazuje izlaznu datoteku nakon pisanja na data.csv.

Sada razumijemo kako spremiti dict u datoteku u obliku CSV -a. Pokušajmo s drugim primjerom gdje želimo zapisati popis dict objekata u CSV datoteku.

Primjer_2: dict_to_csv_2.py

# dict_to_csv_2.py

uvoz csv

csvColumns= ['Grad', 'Zemlja', 'Rang']
dictDemo= [
{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7},
]
csvFileName= 'data.csv'
probati:
s otvorena(csvFileName, 'u') kaof:
pisac= csv.DictWriter(f,imena polja=csvColumns)
pisac.zaglavlje pisanja()
zapodaciudictDemo:
pisac.writerow(podaci)
osim IOError:
ispisati('Došlo je do pogreške')

Redci 3 do 12: Uvozimo python CSV modul i stvaramo popis dict objekata. Također smo izradili popis naziva stupaca.

Redak 13: Varijabli smo dodijelili naziv CSV datoteke.

Redak 15: Koristimo izraz 'with', a izraz je dodijelio objekt __enter__ metodi povratni objekt varijabli f.

Redci 16 do 19: Nakon dodjeljivanja povratnog objekta varijabli f, pozvali smo metodu DictWriter CSV modula i proslijedili dva parametra (naziv datoteke (f) i nazive stupaca). Zatim pozivamo drugu metodu writeheader () koja će napisati prvi redak CSV datoteke, što je općenito naziv polja. Zatim pokrećemo for petlju na popisu dict objekata i upisujemo jedan po jedan u CSV datoteku metodom writerow ().

Metoda 2: Spremite rječnik u tekstualnu datoteku u JSON formatu (način dodavanja)

Također možemo spremiti dict objekte u obliku JSON -a u datoteku. Donji kod će objasniti isto. Ovaj kôd također objašnjava kako možemo dodati novi JSON na postojeći popis JSON -a.

Primjer : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

uvozjson

dictDemo= [
{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7},
]

naziv datoteke= 'dict.json'

# Zapisivanje popisa dict objekata u datoteku
s otvorena(naziv datoteke,načinu rada='u') kaof:
json.istovariti(dictDemo,f)

# Pisanje novog dict objekta u datoteku kao dodavanje i prepisivanje cijele datoteke
s otvorena(naziv datoteke,načinu rada='u') kaof:
dictDemo.dodati({'Grad':'Bejing', 'Zemlja':'Kina'})
json.istovariti(dictDemo,f)

Izlaz : dict.json

[{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7},
{'Grad':'Bejing', 'Zemlja':'Kina'}
]

Redci 1 do 13 : Uvozimo JSON modul. Zatim stvaramo popis dict objekata za demo. Zatim smo imenu JSON datoteke dodijelili varijabilni naziv datoteke.

Redci 15 do 17 : Mi koristimo izraz 'with' za otvaranje JSON datoteke za pisanje, a zatim koristimo metodu json.dump za pretvaranje dict objekata u JSON i zatim upis u datoteku.

Redci 20 do 22: Ove su linije vrlo važne jer što će se dogoditi? Ako pokušamo dodati nove JSON objekte u već napisane datoteke. Prethodni podaci bit će izgubljeni zbog prepisivanja. Tada možemo upotrijebiti prethodni naziv popisa dict kao što smo to učinili (dictDemo), a zatim dodajemo novi objekt u to. I na kraju, cijelu datoteku pretvaramo u JSON i prepisujemo cijelu datoteku.

U ispisu možemo vidjeti da je novi JSON objekt dodan na postojeći JSON popis.

Metoda 3: Spremite objekte rječnika u datoteku u txt obliku

Rječnik također možemo spremiti u normalan format niza u datoteku. Dakle, donja metoda je vrlo jednostavan način za spremanje objekata rječnika u datoteku u tekstualnom obliku. Ali ovaj kôd neće raditi ako želimo datoteci dodati novi objekt rječnika jer će prebrisati prethodno napisane podatke. Dakle, za to ćemo vidjeti u sljedećem kodu.

Primjer: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7},
]

naziv datoteke= 'dict.txt'

# Zapisivanje popisa dict objekata u datoteku
s otvorena(naziv datoteke,načinu rada='u') kaof:
f.pisati(str(dictDemo))

Izlaz: dict.txt

[{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7}]

Redci 1 do 11 : Napravili smo popis objekata rječnika i dodijelili naziv datoteke dict.txt promjenjivom imenu datoteke.

Redci 14 do 15 : Ovdje koristimo izraz ‘with’ koji automatski obrađuje iznimku. Zapisujemo popis objekata dict kao niz u datoteku.

Primjer: dict_to_txt_2.py

Vidjeli smo kako spremiti dict objekte u datoteku u .txt obliku. No u gornjem kodu postoji jedan problem s dodavanjem novog objekta. Dakle, mijenjamo metodu dodavanja iz 'w' u 'a', što može riješiti naš problem kao što je dolje prikazano u kodu.

#dict_to_txt_2.py

'' ': cvar
Ovaj će kod spremiti dict objekte u datoteku s
način dodavanja.
'' '

dictDemo= [
{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7},
]

naziv datoteke= 'dict_to_file_appendMode.txt'

# Zapisivanje popisa dict objekata u datoteku
s otvorena(naziv datoteke,načinu rada='do') kaof:
f.pisati(str(dictDemo))

Redci 7 do 15 : Napravili smo popis objekata rječnika i dodijelili naziv datoteke dict_to_file_appendMode.txt varijabilnom imenu datoteke.

Redci 18 do 19 : Mijenjamo način rada = ‘a’ i to će riješiti naš problem. Donji ispis pokazuje da smo dodali dva dict objekta u istu datoteku bez prepisivanja prethodnih podataka.

Izlaz: dict_to_file_appendMode.txt

[{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7}]

[{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7}]

Metoda 4: Spremite dict objekt u datoteku pomoću metode pickle.

Također možemo spremiti dict objekt u datoteku pomoću python modula za biranje. Modul pickle podržava mnoge objekte za serializaciju u pythonu, a podržava i dict objekte.

# dict_to_file_use_pickle.py

uvoz turšija

dictDemo= [
{'Grad':'New York', 'Zemlja':'USES', 'Rang':3},
{'Grad':'Sydney', 'Zemlja':'Australija', 'Rang':5},
{'Grad':'Dubai', 'Zemlja':'UAE', 'Rang':10},
{'Grad':'Mumbai', 'Zemlja':'Indija', 'Rang':17},
{'Grad':'Bejing', 'Zemlja':'Kina', 'Rang':7},
]

naziv datoteke= 'picklefile.pkl'

s otvorena(naziv datoteke, 'daleko') kaof:
turšija.istovariti(dictDemo,f)

Redci 3 do 13 : Uvozimo modul pickle i stvaramo popis dict objekata. Također stvaramo naziv datoteke u koju ćemo spremati naše dict objekte.

Redci 15 do 16 : Ovdje koristimo izraz 'with' i otvaranje datoteke s načinom dodavanja i binarnim formatom. Zatim izbacujemo dict objekte u datoteku.

Zaključak

Dakle, vidjeli smo različite metode spremanja objekta rječnika u datoteku. O korisniku ovisi kako želi spremiti objekt u datoteku. Najčešći načini spremanja dict objekta u datoteku su JSON i CSV. Formati JSON i CSV vrlo su poznati sa programskog gledišta ili su laki za rukovanje u pythonu. Također smo vidjeli način dodavanja spremanja datoteka.

Kôd za ovaj članak možete preuzeti sa ove veze:

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