Išsaugokite diktą faile

Save Dict File



Žodynas yra labai garsus „Python“ objektas. Ir tai yra raktų ir vertybių kolekcija. Dikto raktas turi būti nekintamas ir gali būti sveikasis skaičius, plūdė, eilutė, tačiau nei sąrašas, nei pats diktatas negali būti raktas. Taigi, kartais mums reikia įrašyti diktavimo objektus į failą. Taigi pamatysime skirtingus metodus, kaip išsaugoti diktavimo objektą faile.

Mes galime įrašyti žodyną į failą „Python“ įvairiais būdais:







  1. Kableliais atskirtų verčių failas (.csv)
  2. „Json“ failas (.json)
  3. Teksto failas (.txt)
  4. Marinavimo failas (.pkl)

Mes paaiškinsime visus aukščiau išvardintus metodus.



1 būdas: išsaugokite žodyną CSV formatu

Norėdami įrašyti žodyną į CSV (kableliais atskirtos vertės), naudojame CSV modulį. Kableliais atskirtos vertės python diktui išsaugoti yra labiausiai paplitęs ir garsiausias metodas. Dauguma programuotojų naudoja šį metodą tik norėdami išsaugoti diktą į failą. Išsaugoti žodyną faile CSV formatu yra labai paprasta, nes turime perkelti duomenis kaip eilutę.



Pavyzdys_1: dict_to_csv.py





# dict_to_csv.py
importas csv

dict_sample= {'vardas':„LinuxHint“, 'miestas':'TAI', „išsilavinimas“:„Inžinerija“}

su atviras('data.csv', 'in') kaipf:
dėlRaktasįdict_sample.raktai():
f.rašyti(% s,% s n'%(Raktas,dict_sample[Raktas]))

2 eilutė : Importuojame CSV python modulį.

4 eilutė : Mes sukūrėme pavyzdinius diktavimo duomenis. Mes stengsimės jį išsaugoti CSV failo pavidalu.



6 eilutė: Mes naudojame čia „su“ teiginį CSV failui rašyti. Pareiškimas „su“ automatiškai tvarko išimčių tvarkymą skaitant ar rašant failą. Rašymo režimu atidarome failą data.csv ir priskiriame tą objektą kintamajam f.

7 eilutė , Mes vykdome ciklą for, kuris ištraukia raktą, o kitoje eilutėje jis įrašo raktą ir key_value į CSV failą. Taigi ši kilpa veiks tol, kol bus duomenų.

Išėjimas: data.csv

vardas,Linux patarimas
miestas,TAI
išsilavinimas,Inžinerija

Taigi, aukščiau parodyta, kaip išvesties failas parašytas ant duomenų.csv.

Dabar mes suprantame, kaip išsaugoti diktą į failą CSV formatu. Pabandykime naudoti kitą pavyzdį, kai norime į CSV failą įrašyti diktuojamų objektų sąrašą.

Pavyzdys_2: dict_to_csv_2.py

# dict_to_csv_2.py

importas csv

csvColumns= [„Miestas“, 'Šalis', „Reitingas“]
dictDemo= [
{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7},
]
csvFileName= 'data.csv'
bandyti:
su atviras(csvFileName, 'in') kaipf:
rašytojas= csv.DictWriter(f,laukų pavadinimai=csvColumns)
rašytojas.rašymo antraštė()
dėlduomenisįdictDemo:
rašytojas.rašytojas(duomenis)
išskyrus IOError:
spausdinti(„Gavau klaidą“)

3–12 eilutės: Importuojame python CSV modulį ir sukuriame diktavimo objektų sąrašą. Taip pat sukūrėme stulpelių pavadinimų sąrašą.

13 eilutė: CSV failo pavadinimą priskyrėme kintamajam.

15 eilutė: Mes naudojame sakinį „su“, o teiginys f_ kintamajam priskyrė __enter__ metodo grąžinimo objektą.

16–19 eilutės: Priskyrę grąžinimo objektą kintamajam f, iškvietėme CSV modulio „DictWriter“ metodą ir perdavėme du parametrus (failo pavadinimą (f) ir stulpelių pavadinimus). Tada mes vadiname kitą metodą writeheader (), kuris parašys pirmąją CSV failo eilutę, kuri paprastai yra laukų pavadinimas. Tada dict objektų sąraše paleidžiame for for ciklą ir rašome po vieną į CSV failą, naudodami writeow () metodą.

2 būdas: išsaugokite diktą į teksto failą JSON formatu (pridėjimo režimas)

Mes taip pat galime išsaugoti diktavimo objektus JSON forma į failą. Žemiau pateiktas kodas paaiškins tą patį. Šis kodas taip pat paaiškina, kaip galime pridėti naują JSON prie esamo JSON sąrašo.

Pavyzdys : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

importasjson

dictDemo= [
{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7},
]

failo pavadinimas= 'dict.json'

# Dikto objektų sąrašo įrašymas į failą
su atviras(failo pavadinimas,režimu='in') kaipf:
json.sąvartynas(dictDemo,f)

# Naujo dikto objekto įrašymas į failą kaip priedas ir perrašomas visas failas
su atviras(failo pavadinimas,režimu='in') kaipf:
dictDemo.pridėti({„Miestas“:„Bejingas“, 'Šalis':'Kinija'})
json.sąvartynas(dictDemo,f)

Išvestis : dict.json

[{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija'}
]

1–13 eilutės : Importuojame JSON modulį. Tada mes sukuriame demonstracinių objektų sąrašą. Tada priskyrėme JSON failo pavadinimą kintamam failo pavadinimui.

15–17 eilutės : Mes naudojame sakinį „su“, kad atidarytume JSON failą rašymui, tada mes naudojame metodą json.dump, kad dict objektai būtų konvertuoti į JSON, o tada įrašyti į failą.

20–22 eilutės: Šios eilutės yra labai svarbios, nes kas atsitiks? Jei bandysime pridėti naujų JSON objektų prie jau parašytų failų. Ankstesni duomenys bus prarasti dėl perrašymo. Tada mes galime naudoti ankstesnį diktų sąrašo pavadinimą, kaip ir mes (dictDemo), ir tada prie to pridedame naują objektą. Galiausiai mes konvertuojame visą failą į JSON ir perrašome visą failą.

Išvestyje matome, kad naujas JSON objektas pridedamas prie esamo JSON sąrašo.

3 būdas: išsaugokite žodyno objektus txt formato faile

Mes taip pat galime įrašyti žodyną į įprastą eilutės formatą faile. Taigi žemiau pateiktas metodas yra labai paprastas būdas įrašyti žodyno objektus į failą teksto formoje. Tačiau šis kodas neveiks, jei norime prie failo pridėti naują žodyno objektą, nes jis perrašys anksčiau parašytus duomenis. Taigi, tai pamatysime kitame kode.

Pavyzdys: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7},
]

failo pavadinimas= „dict.txt“

# Dikto objektų sąrašo įrašymas į failą
su atviras(failo pavadinimas,režimu='in') kaipf:
f.rašyti(p(dictDemo))

Išėjimas: dict.txt

[{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7}]

1–11 eilutės : Sukūrėme žodyno objektų sąrašą ir kintamam failo pavadinimui priskyrėme failo pavadinimą dict.txt.

14–15 eilutės : Mes naudojame sakinį „su“, kuris automatiškai tvarko išimtį. Ir mes rašome diktavimo objektų sąrašą kaip eilutę į failą.

Pavyzdys: dict_to_txt_2.py

Mes matėme, kaip įrašyti diktavimo objektus į failą .txt formoje. Tačiau aukščiau pateiktame kode yra viena problema pridedant naują objektą. Taigi, mes pakeičiame pridėjimo metodą iš „w“ į „a“, kuris gali išspręsti mūsų problemą, kaip parodyta toliau esančiame kode.

#dict_to_txt_2.py

'': cvar
Šis kodas išsaugos dikto objektus faile su
pridėjimo režimas.
'' '

dictDemo= [
{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7},
]

failo pavadinimas= „dict_to_file_appendMode.txt“

# Dikto objektų sąrašo įrašymas į failą
su atviras(failo pavadinimas,režimu='iki') kaipf:
f.rašyti(p(dictDemo))

7–15 eilutės : Sukūrėme žodyno objektų sąrašą ir kintamam failo pavadinimui priskyrėme failo pavadinimą dict_to_file_appendMode.txt.

18–19 eilutės : Mes pakeičiame režimą = „a“, ir tai išspręs mūsų problemą. Žemiau pateikta informacija rodo, kad mes pridėjome du diktavimo objektus tame pačiame faile, neperrašydami ankstesnių duomenų.

Išvestis: dict_to_file_appendMode.txt

[{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7}]

[{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7}]

4 būdas: išsaugokite diktavimo objektą faile naudodami marinavimo metodą.

Mes taip pat galime išsaugoti „dict“ objektą faile naudodami „python“ marinavimo modulį. Marinavimo modulis palaiko daugelį objektų, skirtų serializuoti „python“, taip pat palaiko diktavimo objektus.

# dict_to_file_use_pickle.py

importas marinuoti

dictDemo= [
{„Miestas“:'Niujorkas', 'Šalis':„NAUDOJIMAI“, „Reitingas“:3},
{„Miestas“:„Sidnėjus“, 'Šalis':„Australija“, „Reitingas“:5},
{„Miestas“:„Dubajus“, 'Šalis':„JAE“, „Reitingas“:10},
{„Miestas“:„Mumbajus“, 'Šalis':'Indija', „Reitingas“:17},
{„Miestas“:„Bejingas“, 'Šalis':'Kinija', „Reitingas“:7},
]

failo pavadinimas= 'picklefile.pkl'

su atviras(failo pavadinimas, 'toli') kaipf:
marinuoti.sąvartynas(dictDemo,f)

3–13 eilutės : Importuojame modulio marinatą ir sukuriame diktuojamų objektų sąrašą. Mes taip pat sukuriame failo pavadinimą, kuriame išsaugosime savo diktavimo objektus.

15–16 eilutė : Mes naudojame sakinį „su“ ir atidarome failą pridėjimo režimu ir dvejetainiu formatu. Tada mes išmetame diktavimo objektus į failą.

Išvada

Taigi, mes matėme skirtingus žodyno objekto įrašymo į failą metodus. Tai priklauso nuo vartotojo, kaip jie nori išsaugoti objektą faile. Dažniausiai naudojami dikto objekto įrašymo į failą metodai yra JSON ir CSV. JSON ir CSV formatai yra labai žinomi programavimo požiūriu arba lengvai valdomi naudojant „Python“. Mes taip pat matėme priedų failų išsaugojimo režimą.

Šio straipsnio kodą galima atsisiųsti iš šios nuorodos:

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