Salvestage diktaat faili

Save Dict File



Sõnastik on pythonis väga kuulus objekt. Ja see on võtmete ja väärtuste kogum. Dikti võti peab olema muutumatu ja see võib olla täisarv, float, string, kuid ei nimekiri ega dikt ise võti olla. Niisiis, mõnikord peame dikt -objektid faili salvestama. Nii et me näeme erinevaid meetodeid diktobjekti salvestamiseks faili.

Võime sõnastiku Pythonis faili kirjutada mitmel viisil, näiteks:







  1. Komaga eraldatud väärtuste fail (.csv)
  2. JSON -fail (.json)
  3. Tekstifail (.txt)
  4. Hapukurkfail (.pkl)

Selgitame kõiki ülaltoodud meetodeid.



Meetod: salvestage sõnastik CSV -vormingus

Sõnastiku salvestamiseks CSV -sse (komaga eraldatud väärtused) kasutame CSV -moodulit. Python-dikti salvestamiseks on komadega eraldatud väärtused kõige levinum ja kuulsam meetod. Enamik programmeerijaid kasutab seda meetodit ainult dikti faili salvestamiseks. Sõnastiku failina CSV -vormingus salvestamine on väga lihtne, kuna peame andmed stringina edastama.



Näide_1: dict_to_csv.py





# dict_to_csv.py
import csv

dict_sample= {'nimi':'LinuxHint', 'linn':'SEE', 'haridus':'Inseneriteadus'}

koos lahti('data.csv', 'sisse') naguf:
eestvõtisissedict_sample.võtmed():
f.kirjutada('% s,% s n'%(võti,dict_sample[võti]))

Rida 2 : Impordime CSV pythoni mooduli.

4. rida : Lõime diktandmete näidisandmed. Proovime selle CSV -failina salvestada.



6. rida: Kasutame siin CSV -faili kirjutamiseks lauset „koos”. Lause „koos” käsitleb erandite käsitlemist automaatselt faili lugemise või kirjutamise ajal. Avame kirjutamisrežiimis faili data.csv ja määrame selle objekti muutujale f.

Rida 7 , Käivitame for -ahela, mis ekstraheerib võtme ja järgmisel real kirjutab see võtme ja võtmeväärtuse CSV -faili. Nii et see tsükkel kestab kuni andmeid on.

Väljund: data.csv

nimi,LinuxHint
linn,SEE
haridus,Inseneriteadus

Niisiis, ülaltoodud näitab väljundfaili pärast data.csv -le kirjutamist.

Nüüd mõistame, kuidas dikt salvestada CSV -vormingus faili. Proovime teise näitega, kus tahame CSV -faili kirjutada dikteeritavate objektide loendi.

Näide_2: dict_to_csv_2.py

# dict_to_csv_2.py

import csv

csvVeerud= ['Linn', 'Riik', 'Koht']
dictDemo= [
{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7},
]
csvFileName= 'data.csv'
proovige:
koos lahti(csvFileName, 'sisse') naguf:
kirjanik= csv.DictWriter(f,väljade nimed=csvVeerud)
kirjanik.kirjutuspea()
eestandmedsissedictDemo:
kirjanik.kirjanik(andmed)
välja arvatud IOError:
printida('Sai viga')

Rida 3 kuni 12: Impordime python CSV mooduli ja koostame diktobjektide loendi. Samuti koostasime veergude nimede loendi.

Rida 13: Määrasime CSV -faili nime muutujale.

Rida 15: Kasutame lauset „koos” ja avaldis määrab muutujale f tagasisaatmisobjekti __enter__.

Rida 16 kuni 19: Pärast tagastamisobjekti määramist muutujale f kutsusime CSV mooduli DictWriteri meetodi ja edastasime kaks parameetrit (failinimi (f) ja veerunimed). Seejärel kutsume teist meetodit writeheader (), mis kirjutab CSV -faili esimese rea, mis on tavaliselt väljade nimi. Seejärel käivitame dict -objektide loendis for for loop ja kirjutame ükshaaval CSV -faili, kasutades meetodit writeow ().

Meetod: salvestage dikt JSON -vormingus tekstifaili (lisamisrežiim)

Samuti võime salvestada diktiobjektid JSON -vormingus faili. Allpool olev kood selgitab sama. See kood selgitab ka seda, kuidas saame lisada uue JSON -i olemasolevasse JSON -i loendisse.

Näide : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

importjson

dictDemo= [
{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7},
]

faili nimi= 'dict.json'

# Dikteerivate objektide loendi kirjutamine faili
koos lahti(faili nimi,režiimi='sisse') naguf:
json.prügimäele(dictDemo,f)

# Uue dikteerimisobjekti kirjutamine faili lisamiseks ja kogu faili ülekirjutamiseks
koos lahti(faili nimi,režiimi='sisse') naguf:
dictDemo.lisama({'Linn':'Bejing', 'Riik':'Hiina'})
json.prügimäele(dictDemo,f)

Väljund : dict.json

[{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7},
{'Linn':'Bejing', 'Riik':'Hiina'}
]

Rida 1 kuni 13 : Impordime JSON -mooduli. Seejärel koostame demo jaoks dikteeritavate objektide loendi. Seejärel määrasime muutuvale failinimele JSON -faili nime.

Rida 15 kuni 17 : Me kasutame lauset „koos”, et avada JSON -fail kirjutamiseks, ja seejärel kasutame meetodit json.dump, et teisendada dict -objektid JSON -iks ja seejärel faili kirjutada.

Rida 20 kuni 22: Need read on väga olulised, sest mis saab edasi? Kui proovime lisada uusi JSON -objekte juba kirjutatud failidesse. Eelmised andmed lähevad ülekirjutamise tõttu kaduma. Seejärel saame kasutada eelmise dikteerimisloendi nime, nagu me tegime (dictDemo), ja seejärel lisame sinna uue objekti. Ja lõpuks teisendame kogu faili JSONiks ja kirjutame kogu faili üle.

Väljundis näeme, et olemasolevale JSON -i loendile lisatakse uus JSON -objekt.

Meetod: salvestage sõnastiku objektid txt -vormingus faili

Samuti saame sõnastiku faili salvestada tavalises stringivormingus. Niisiis, allpool toodud meetod on väga lihtne viis sõnastiku objektide tekstivormis faili salvestamiseks. Kuid see kood ei tööta, kui soovime faili lisada uue sõnastikuobjekti, kuna see kirjutab varem kirjutatud andmetele üle. Niisiis, näeme seda järgmises koodis.

Näide: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7},
]

faili nimi= 'dict.txt'

# Dikteerivate objektide loendi kirjutamine faili
koos lahti(faili nimi,režiimi='sisse') naguf:
f.kirjutada(lk(dictDemo))

Väljund: dict.txt

[{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7}]

Rida 1 kuni 11 : Lõime sõnastikuobjektide loendi ja määrasime muutuvale failinimele faili nime dict.txt.

Rida 14 kuni 15 : Me kasutame siin lauset „koos”, mis käsitleb erandit automaatselt. Ja me kirjutame diktobjektide loendi failina stringina.

Näide: dict_to_txt_2.py

Oleme näinud, kuidas diktobjekte salvestada .txt -vormingus faili. Kuid ülaltoodud koodis on uue objekti lisamisega üks probleem. Niisiis muudame lisamismeetodi „w” asemel „a”, mis võib meie probleemi lahendada, nagu allpool koodis näidatud.

#dict_to_txt_2.py

'' ': cvar
See kood salvestab dikteeritavad objektid faili koos
lisamisrežiim.
'' '

dictDemo= [
{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7},
]

faili nimi= 'dict_to_file_appendMode.txt'

# Dikteerivate objektide loendi kirjutamine faili
koos lahti(faili nimi,režiimi='') naguf:
f.kirjutada(lk(dictDemo))

Rida 7 kuni 15 : Lõime sõnastikuobjektide loendi ja määrasime muutuvale failinimele faili nime dict_to_file_appendMode.txt.

Rida 18 kuni 19 : Muudame režiimi = 'a' ja see lahendab meie probleemi. Allpool olev väljund näitab, et oleme lisanud samasse faili kaks dikteerimisobjekti ilma eelnevaid andmeid üle kirjutamata.

Väljund: dict_to_file_appendMode.txt

[{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7}]

[{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7}]

4. meetod: salvestage dict -objekt hapukurgi meetodil faili.

Samuti saame salvestada dict -objekti faili, kasutades pythoni hapukurgi moodulit. Hapukurkmoodul toetab paljusid pythonis serialiseeritavaid objekte ja toetab ka dikteeritud objekte.

# dict_to_file_use_pickle.py

import hapukurk

dictDemo= [
{'Linn':'New York', 'Riik':'KASUTAB', 'Koht':3},
{'Linn':'Sydney', 'Riik':'Austraalia', 'Koht':5},
{'Linn':'Dubai', 'Riik':'AÜE', 'Koht':10},
{'Linn':'Mumbai', 'Riik':'India', 'Koht':17},
{'Linn':'Bejing', 'Riik':'Hiina', 'Koht':7},
]

faili nimi= 'picklefile.pkl'

koos lahti(faili nimi, 'eemal') naguf:
hapukurk.prügimäele(dictDemo,f)

Rida 3 kuni 13 : Impordime mooduli hapukurgi ja koostame diktobjektide loendi. Loome ka failinime, kuhu salvestame oma dikteeritavad objektid.

Rida 15 kuni 16 : Me kasutame siin lauset „koos” ja avame faili lisamisrežiimi ja kahendvorminguga. Seejärel viskame dikteeritavad objektid faili.

Järeldus

Niisiis, oleme näinud erinevaid meetodeid sõnastikuobjekti faili salvestamiseks. Kasutajast sõltub, kuidas ta soovib objekti faili salvestada. Kõige tavalisemad diktobjekti faili salvestamise meetodid on JSON ja CSV. JSON- ja CSV -vormingud on programmeerimise seisukohast väga kuulsad või pythonis hõlpsasti käsitsetavad. Oleme näinud ka failide salvestamise lisamisrežiimi.

Selle artikli koodi saate alla laadida sellelt lingilt:

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