Dict mentése egy fájlba

Save Dict File



A szótár egy nagyon híres objektum a pythonban. És ez kulcsok és értékek gyűjteménye. A diktáló kulcsnak változatlannak kell lennie, és lehet egész szám, lebegő, karakterlánc, de sem a lista, sem maga a diktátum nem lehet kulcs. Tehát néha el kell mentenünk a dict objektumokat egy fájlba. Tehát különböző módszereket fogunk látni egy dict objektum fájlba mentésére.

A szótárat a Python fájlba különféle módon írhatjuk, például:







  1. Vesszővel elválasztott értékfájl (.csv)
  2. Json fájl (.json)
  3. Szöveges fájl (.txt)
  4. Pácolt fájl (.pkl)

Az összes fenti módszert elmagyarázzuk.



Módszer: A szótár mentése CSV formátumban

A szótár CSV -be (vesszővel elválasztott értékek) való mentéséhez a CSV modult használjuk. A vesszővel elválasztott értékek a python-dikt mentéséhez a leggyakoribb és leghíresebb módszer. A legtöbb programozó csak ezt a módszert használja a diktátum fájlba mentéséhez. A szótár CSV -fájlba mentése nagyon egyszerű, mivel az adatokat karakterláncként kell átvinni.



Példa_1: dict_to_csv.py





# dict_to_csv.py
import csv

dict_sample= {'név':'LinuxHint', 'város':'HOGY', 'oktatás':'Mérnöki'}

val vel nyisd ki('data.csv', 'ban ben') mintf:
számárakulcsban bendict_sample.kulcsok():
f.ír('% s,% s n'%(kulcs,dict_sample[kulcs]))

2. sor : Importáljuk a CSV python modult.

4. sor : Létrehoztunk egy diktációs mintát. Megpróbáljuk menteni CSV -fájl formájában.



6. sor: Itt a „with” utasítással írjuk a CSV -fájlt. A „with” utasítás automatikusan kezeli a kivételkezelést egy fájl olvasása vagy írása során. Írásmódban megnyitjuk a data.csv fájlt, és hozzárendeljük az objektumot az f változóhoz.

7. sor , A for ciklust futtatjuk, amely kibontja a kulcsot, és a következő sorban a kulcsot és a kulcsértéket írja egy CSV -fájlba. Tehát ez a ciklus addig fog futni, amíg nincs adat.

Kimenet: data.csv

név,LinuxTipp
város,HOGY
oktatás,Mérnöki

Tehát a fentiek a data.csv fájlra írást követően a kimeneti fájlt mutatják.

Most megértjük, hogyan menthetjük el a diktátumot CSV formátumú fájlba. Próbálkozzunk egy másik példával, ahol a dict objektumok listáját szeretnénk beírni a CSV fájlba.

Példa_2: dict_to_csv_2.py

# dict_to_csv_2.py

import csv

csvOszlopok= ['Város', 'Ország', 'Rang']
dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]
csvFileName= 'data.csv'
próbáld ki:
val vel nyisd ki(csvFileName, 'ban ben') mintf:
író= csv.DictWriter(f,mezőnevek=csvOszlopok)
író.írófej()
számáraadatban bendictDemo:
író.író(adat)
kivéve IOError:
nyomtatás('Hiba történt')

3-12. Sor: Importáljuk a python CSV modult, és létrehozunk egy listát a dict objektumokról. Létrehoztunk egy oszlopnevek listáját is.

13. sor: A CSV -fájlnevet egy változóhoz rendeltük.

15. sor: A „with” utasítást használjuk, és az utasítás a __enter__ metódus return objektumot rendelte az f változóhoz.

16-19 sor: Miután a visszatérési objektumot hozzárendeltük az f változóhoz, meghívtuk a CSV modul DictWriter metódusát, és két paramétert adtunk meg (fájlnév (f) és oszlopnevek). Ezután hívunk egy másik metódust írófejnek (), amely a CSV -fájl első sorát írja, ami általában a mezők neve. Ezután futtatunk egy for ciklust a dict objektumok listáján, és egyenként írunk a CSV fájlba a writeow () metódussal.

Módszer: Mentse el a diktátumot egy szöveges fájlba JSON formátumban (hozzáfűzési mód)

A dict objektumokat JSON formájában is menthetjük fájlba. Az alábbi kód megmagyarázza ugyanezt. Ez a kód azt is elmagyarázza, hogyan adhatunk hozzá új JSON -t a JSON meglévő listájához.

Példa : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

importjson

dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]

fájl név= 'dict.json'

# A dict objektumok listájának írása egy fájlba
val vel nyisd ki(fájl név,mód='ban ben') mintf:
json.lerak(dictDemo,f)

# Új diktációs objektum írása egy fájlhoz csatolásként és felülírva az egész fájlt
val vel nyisd ki(fájl név,mód='ban ben') mintf:
dictDemo.mellékel({'Város':'Bejing', 'Ország':'Kína'})
json.lerak(dictDemo,f)

Kimenet : dict.json

[{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
{'Város':'Bejing', 'Ország':'Kína'}
]

1-13. Sor : Importáljuk a JSON modult. Ezután létrehozunk egy listát a diktációs objektumokról a bemutatóhoz. Ezután hozzárendeltük a JSON fájl nevét egy változó fájlnévhez.

15-17 sor : A „with” utasítással megnyitjuk a JSON fájlt íráshoz, majd a json.dump metódussal konvertáljuk a dict objektumokat JSON -ba, majd írunk a fájlba.

20-22 sor: Ezek a sorok nagyon fontosak, mert mi fog történni? Ha új JSON objektumokat próbálunk hozzáadni a már megírt fájlokhoz. A korábbi adatok elvesznek a felülírás miatt. Ekkor használhatjuk a korábbi diktálási lista nevét, ahogy tettük (dictDemo), majd hozzáfűzzük az új objektumot. És végül az egész fájlt JSON -ba konvertáljuk, és felülírjuk az egész fájlt.

A kimeneten láthatjuk, hogy egy új JSON objektum hozzáadódik a meglévő JSON listához.

3. módszer: Mentse el a szótárobjektumokat fájlba txt formában

A szótárt normál karakterlánc -formátumba is menthetjük a fájlba. Tehát az alábbi módszer egy nagyon egyszerű módja annak, hogy a szótárobjektumokat szöveges formában mentse a fájlba. De ez a kód nem fog működni, ha új szótárobjektumot szeretnénk hozzáfűzni a fájlhoz, mert felülírja a korábban írt adatokat. Tehát ehhez a következő kódban fogjuk látni.

Példa: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]

fájl név= 'dict.txt'

# A dict objektumok listájának írása egy fájlba
val vel nyisd ki(fájl név,mód='ban ben') mintf:
f.ír(o(dictDemo))

Kimenet: dict.txt

[{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7}]

1-11 sor : Létrehoztunk egy szótár objektumok listáját, és a dict.txt fájl nevét hozzárendeltük egy változó fájlnévhez.

14-15 sor : Itt a „with” utasítást használjuk, amely automatikusan kezeli a kivételt. És a dict objektumok listáját karakterláncként írjuk egy fájlba.

Példa: dict_to_txt_2.py

Láttuk, hogyan lehet a dict objektumokat egy .txt formátumú fájlba menteni. De a fenti kódban egy probléma van egy új objektum hozzáfűzésével. Tehát megváltoztatjuk a hozzáfűzési módszert „w” -ről „a” -ra, ami megoldhatja a problémánkat, ahogy az alább látható a kódban.

#dict_to_txt_2.py

'' ': cvar
Ez a kód menti a dict objektumokat a fájlba a
hozzáfűzési mód.
'' ''

dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]

fájl név= 'dict_to_file_appendMode.txt'

# A dict objektumok listájának írása egy fájlba
val vel nyisd ki(fájl név,mód='nak nek') mintf:
f.ír(o(dictDemo))

7-15 sor : Létrehoztunk egy szótár objektumok listáját, és a dict_to_file_appendMode.txt fájl nevét hozzárendeltük egy változó fájlnévhez.

18-19 sor : Megváltoztatjuk a módot = ‘a’, és ez megoldja a problémánkat. Az alábbi kimenet azt mutatja, hogy két dict objektumot adtunk ugyanabba a fájlba anélkül, hogy felülírtuk volna az előző adatokat.

Kimenet: dict_to_file_appendMode.txt

[{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7}]

[{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7}]

4. módszer: Mentse el a dict objektumot fájlba a pácolás módszerével.

A dict objektumot fájlba is menthetjük a python savanyító modul segítségével. A pácoló modul számos objektumot támogat a sorba rendezéshez a pythonban, és támogatja a diktált objektumokat is.

# dict_to_file_use_pickle.py

import savanyú uborka

dictDemo= [
{'Város':'New York', 'Ország':'USES', 'Rang':3},
{'Város':'Sydney', 'Ország':'Ausztrália', 'Rang':5},
{'Város':'Dubai', 'Ország':'Egyesült Arab Emírségek', 'Rang':10},
{'Város':'Mumbai', 'Ország':'India', 'Rang':17},
{'Város':'Bejing', 'Ország':'Kína', 'Rang':7},
]

fájl név= 'picklefile.pkl'

val vel nyisd ki(fájl név, 'el') mintf:
savanyú uborka.lerak(dictDemo,f)

3-13. Sor : Importáljuk a modul pácot, és létrehozunk egy listát a dict objektumokról. Létrehozunk egy fájlnevet is, ahová mentjük a dict objektumainkat.

15-16 sor : Itt a „with” utasítást használjuk, és megnyitjuk a fájlt hozzáfűzési módban és bináris formátumban. Ezután a dict objektumokat a fájlba dobjuk.

Következtetés

Tehát láthattunk különböző módszereket egy szótárobjektum fájlba mentésére. A felhasználótól függ, hogy hogyan szeretné menteni az objektumot a fájlba. A dict objektum fájlba mentésének leggyakoribb módszerei a JSON és a CSV. A JSON és CSV formátumok nagyon híresek a programozás szempontjából, vagy könnyen kezelhetők pythonban. Láttuk a fájlok mentésének hozzáfűzési módját is.

A cikk kódja letölthető erről a linkről:

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