Shranite narekovaj v datoteko

Save Dict File



Slovar je zelo znan predmet v pythonu. In to je zbirka ključev in vrednosti. Ključ diktata mora biti nespremenljiv in je lahko celo število, lebdeč, niz, vendar niti seznam niti sam narek ne moreta biti ključ. Zato moramo včasih predmete dict shraniti v datoteko. Tako bomo videli različne načine shranjevanja predmeta dict v datoteko.

Slovar lahko v datoteko v Pythonu zapišemo na različne načine, na primer:







  1. Datoteka vrednosti, ločena z vejicami (.csv)
  2. Datoteka Json (.json)
  3. Besedilna datoteka (.txt)
  4. Datoteka za kumare (.pkl)

Pojasnili bomo vse zgoraj navedene metode.



1. način: Shranite slovar v obliki CSV

Slovar shranimo v CSV (Comma Separated Values), uporabimo modul CSV. Vrednosti, ločene z vejicami za shranjevanje python dict, so najpogostejša in najbolj znana metoda. Večina programerjev uporablja to metodo samo za shranjevanje besedila v datoteko. Shranjevanje slovarja v datoteko kot CSV je zelo enostavno, saj moramo podatke prenesti kot niz.



Primer_1: dict_to_csv.py





# dict_to_csv.py
uvoz csv

dict_sample= {'ime':'LinuxHint', 'mesto':'TO', 'izobraževanje':'Inženiring'}

z odprto('data.csv', 'in') kotf:
zaključvdict_sample.ključe():
f.pisati('% s,% s n'%(ključ,dict_sample[ključ]))

2. vrstica : Uvažamo modul python CSV.

4. vrstica : Ustvarili smo vzorec podatkov dict. Poskusili ga bomo shraniti v obliki datoteke CSV.



Vrstica 6: Tukaj za pisanje datoteke CSV uporabljamo stavek 'with'. Stavek 'with' samodejno obravnava izjeme med branjem ali pisanjem datoteke. Odpremo datoteko data.csv v načinu pisanja in temu objektu dodelimo spremenljivko f.

Vrstica 7 , Izvajamo zanko for, ki izvleče ključ, v naslednjo vrstico pa zapisuje ključ in vrednost key_value v datoteko CSV. Tako bo ta zanka delovala, dokler ni podatkov.

Izhod: data.csv

ime,LinuxHint
mesto,TO
izobraževanje,Inženiring

Torej, zgornje prikazuje izhodno datoteko po pisanju na data.csv.

Zdaj razumemo, kako shraniti dict v datoteko v obliki CSV. Poskusimo z drugim primerom, kjer želimo v datoteko CSV zapisati seznam predmetov dict.

Primer_2: dict_to_csv_2.py

# dict_to_csv_2.py

uvoz csv

csvColumns= ['Mesto', 'Država', 'Uvrstitev']
dictDemo= [
{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7},
]
csvFileName= 'data.csv'
poskusite:
z odprto(csvFileName, 'in') kotf:
pisatelj= csv.DictWriter(f,imena polj=csvColumns)
pisatelj.pisalna glava()
zapodatkovvdictDemo:
pisatelj.writerow(podatkov)
razen IOError:
tiskanje('Dobil napako')

Vrstice 3 do 12: Uvozimo modul python CSV in ustvarimo seznam predmetov dict. Ustvarili smo tudi seznam imen stolpcev.

Vrstica 13: Spremenljivki smo dodelili ime datoteke CSV.

Vrstica 15: Uporabljamo stavek 'with' in stavek dodeljuje objekt vrnitve metode __enter__ spremenljivki f.

Vrstice 16 do 19: Po dodelitvi povratnega predmeta spremenljivki f smo poklicali metodo DictWriter modula CSV in podali dva parametra (ime datoteke (f) in imena stolpcev). Nato pokličemo drugo metodo writeheader (), ki bo zapisala prvo vrstico datoteke CSV, ki je na splošno ime polj. Nato zaženemo zanko for na seznamu predmetov dict in po metodi writerow () enega za drugim zapišemo v datoteko CSV.

2. način: Shranite narekovaj v besedilno datoteko v obliki JSON (način dodajanja)

Predmete dict v obliki JSON lahko shranimo tudi v datoteko. Spodnja koda bo razložila isto. Ta koda tudi pojasnjuje, kako lahko na obstoječi seznam JSON dodamo nov JSON.

Primer : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

uvozjson

dictDemo= [
{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7},
]

Ime datoteke= 'dict.json'

# Pisanje seznama predmetov dict v datoteko
z odprto(Ime datoteke,način='in') kotf:
json.odlagališče(dictDemo,f)

# Pisanje novega predmeta dict v datoteko kot dodajanje in prepis celotne datoteke
z odprto(Ime datoteke,način='in') kotf:
dictDemo.priloži({'Mesto':'Bejing', 'Država':'Kitajska'})
json.odlagališče(dictDemo,f)

Izhod : dict.json

[{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7},
{'Mesto':'Bejing', 'Država':'Kitajska'}
]

Vrstice 1 do 13 : Uvozimo modul JSON. Nato ustvarimo seznam predmetov dict za predstavitev. Nato smo imenu datoteke JSON dodelili spremenljivo ime datoteke.

Vrstice 15 do 17 : Za odpiranje datoteke JSON za pisanje uporabljamo stavek ‘with’, nato pa z metodo json.dump pretvorimo predmete dict v JSON in nato zapišemo v datoteko.

Vrstice 20 do 22: Te vrstice so zelo pomembne, kaj se bo zgodilo? Če poskušamo že zapisanim datotekam dodati nove objekte JSON. Zaradi prepisa bodo prejšnji podatki izgubljeni. Nato lahko uporabimo prejšnje ime seznama dict, kot smo ga naredili (dictDemo), nato pa vanj dodamo nov objekt. In nazadnje celotno datoteko pretvorimo v JSON in prepišemo celotno datoteko.

V izhodu lahko vidimo, da je novi objekt JSON dodan obstoječemu seznamu JSON.

3. način: Shranite predmete slovarja v datoteko v obliki txt

Slovar lahko v datoteko shranimo tudi v običajno obliko zapisa niza. Torej je spodnja metoda zelo preprost način za shranjevanje slovarskih predmetov v datoteko v besedilni obliki. Toda ta koda ne bo delovala, če želimo datoteki dodati nov slovarski objekt, ker bo prepisal predhodno zapisane podatke. Zato bomo to videli v naslednji kodi.

Primer: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7},
]

Ime datoteke= 'dict.txt'

# Pisanje seznama predmetov dict v datoteko
z odprto(Ime datoteke,način='in') kotf:
f.pisati(str(dictDemo))

Izhod: dict.txt

[{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7}]

Vrstice 1 do 11 : Ustvarili smo seznam slovarskih objektov in imenu datoteke dict.txt dodelili spremenljivo ime datoteke.

Vrstice 14 do 15 : Tukaj uporabljamo stavek 'with', ki samodejno obravnava izjemo. Seznam predmetov dict pišemo kot niz v datoteko.

Primer: dict_to_txt_2.py

Videli smo, kako shraniti predmete dict v datoteko v obliki .txt. Toda v zgornji kodi obstaja ena težava pri dodajanju novega predmeta. Tako spremenimo metodo dodajanja iz 'w' v 'a', kar lahko reši naš problem, kot je prikazano spodaj v kodi.

#dict_to_txt_2.py

'' ': cvar
Ta koda bo shranila predmete dict v datoteko z datoteko
način dodajanja.
'' '

dictDemo= [
{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7},
]

Ime datoteke= 'dict_to_file_appendMode.txt'

# Pisanje seznama predmetov dict v datoteko
z odprto(Ime datoteke,način='do') kotf:
f.pisati(str(dictDemo))

Vrstice 7 do 15 : Ustvarili smo seznam slovarskih objektov in ime datoteke dict_to_file_appendMode.txt dodelili spremenljivemu imenu datoteke.

Vrstice 18 do 19 : Spremenimo način = 'a' in s tem bomo rešili naš problem. Spodnji izhod kaže, da smo v isto datoteko dodali dva predmeta dict, ne da bi prepisali prejšnje podatke.

Izhod: dict_to_file_appendMode.txt

[{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7}]

[{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7}]

4. način: shranite predmet dict v datoteko z metodo pickle.

Predmet dict lahko shranimo tudi v datoteko s pomočjo modula python pickle. Modul pickle podpira številne predmete za serializacijo v pythonu in podpira tudi dict predmete.

# dict_to_file_use_pickle.py

uvoz kumarica

dictDemo= [
{'Mesto':'New York', 'Država':'UPORABLJA', 'Uvrstitev':3},
{'Mesto':'Sydney', 'Država':'Avstralija', 'Uvrstitev':5},
{'Mesto':'Dubaj', 'Država':'ZAE', 'Uvrstitev':10},
{'Mesto':'Mumbai', 'Država':'Indija', 'Uvrstitev':17},
{'Mesto':'Bejing', 'Država':'Kitajska', 'Uvrstitev':7},
]

Ime datoteke= 'picklefile.pkl'

z odprto(Ime datoteke, 'stran') kotf:
kumarica.odlagališče(dictDemo,f)

Vrstice 3 do 13 : Uvozimo modul pickle in ustvarimo seznam predmetov dict. Ustvarimo tudi ime datoteke, kamor bomo shranili naše predmete dict.

Vrstice 15 do 16 : Tukaj uporabljamo stavek 'with' in odpremo datoteko z načinom dodajanja in binarno obliko. Nato v datoteko izpustimo predmete dict.

Zaključek

Tako smo videli različne načine shranjevanja predmeta slovarja v datoteko. Od uporabnika je odvisno, kako želi shraniti predmet v datoteko. Najpogostejša načina shranjevanja predmeta dict v datoteko sta JSON in CSV. Formati JSON in CSV sta s programskega vidika zelo znani ali pa jih je v pythonu enostavno upravljati. Videli smo tudi način dodajanja shranjevanja datotek.

Kodo za ta članek lahko prenesete s te povezave:

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