Mag-save ng isang dikta sa isang file

Save Dict File



Ang Diksyonaryo ay isang tanyag na bagay sa sawa. At ito ay isang koleksyon ng mga susi at halaga. Ang susi ng dikta ay dapat na hindi nababago, at maaari itong maging integer, float, string, ngunit alinman sa isang listahan o isang dict mismo ay maaaring maging isang susi. Kaya, kung minsan kailangan nating i-save ang mga dict na bagay sa isang file. Kaya't makakakita kami ng iba't ibang mga pamamaraan upang mai-save ang isang dict object sa isang file.

Maaari naming isulat ang diksyunaryo sa isang file sa Python sa iba't ibang paraan tulad ng:







  1. Pinaghihiwalay na file na pinaghihiwalay na comma (.csv)
  2. Json file (.json)
  3. Text file (.txt)
  4. File ng pickle (.pkl)

Ipapaliwanag namin ang lahat ng mga pamamaraan sa itaas.



Paraan 1: I-save ang diksyunaryo sa format na CSV

Upang mai-save ang diksyunaryo sa CSV (Comma Separated Values), ginagamit namin ang module ng CSV. Ang mga halagang pinaghiwalay ng kuwit upang i-save ang python dict ay ang pinaka-karaniwang at tanyag na pamamaraan. Karamihan sa mga programmer ay gumagamit ng pamamaraang ito lamang upang mai-save ang dict sa isang file. Upang mai-save ang diksyunaryo sa isang file bilang CSV ay napakadali dahil kailangan nating ilipat ang data bilang isang string.



Halimbawa_1: dict_to_csv.py





# dict_to_csv.py
angkat csv

dict_sample= {'pangalan':'LinuxHint', 'lungsod':'YAN', 'edukasyon':'Engineering'}

kasama si buksan('data.csv', 'sa') bilangf:
para sasusisadict_sample.mga susi():
f.sumulat('% s,% s n'%(susi,dict_sample[susi]))

Linya 2 : Ini-import namin ang module ng CSV python.

Linya 4 : Lumikha kami ng isang sample na data ng dict. Susubukan naming i-save ito sa anyo ng isang CSV file.



Linya 6: Ginagamit namin dito ang pahayag na 'may' upang isulat ang file ng CSV. Hinahawak ng pahayag na 'may' ang awtomatikong paghawak ng pagbubukod sa panahon na basahin o isulat ang isang file. Buksan namin ang file data.csv sa mode ng pagsulat at italaga ang bagay na iyon sa variable f.

Linya 7 , Nagpapatakbo kami ng isang para sa loop na kumukuha ng susi, at sa susunod na linya, isinusulat nito ang susi at ang key_value sa isang CSV file. Kaya't tatakbo ang loop na ito hanggang may data.

Output: data.csv

pangalan,LinuxHint
lungsod,YAN
edukasyon,Engineering

Kaya, sa itaas ay ipinapakita ang output file pagkatapos ng pagsusulat sa data.csv.

Ngayon, naiintindihan namin kung paano i-save ang dict sa isang file sa anyo ng CSV. Subukan natin ang isa pang halimbawa kung saan nais naming magsulat ng isang listahan ng mga dict na bagay sa file ng CSV.

Halimbawa_2: dict_to_csv_2.py

# dict_to_csv_2.py

angkat csv

csvColumns= ['Lungsod', 'Bansa', 'Ranggo']
dictDemo= [
{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7},
]
csvFileName= 'data.csv'
subukan mo:
kasama si buksan(csvFileName, 'sa') bilangf:
manunulat= csv.DictWriter(f,mga patlang=csvColumns)
manunulatpanulat()
para sadatasadictDemo:
manunulatmanunulat(data)
maliban sa IOError:
mag-print('Nagkaroon ng Error')

Linya 3 hanggang 12: Ina-import namin ang module ng python CSV at lumikha ng isang listahan ng mga dict na object. Lumikha din kami ng isang listahan ng mga pangalan ng haligi.

Linya 13: Itinalaga namin ang pangalan ng file ng CSV sa isang variable.

Linya 15: Ginagamit namin ang pahayag na 'may', at ang pahayag na itinalaga ang __enter__ na pamamaraan na bumalik sa object ng f variable.

Linya 16 hanggang 19: Matapos italaga ang bumalik na bagay sa variable f, tumawag kami ng isang paraan ng DictWriter ng module ng CSV at ipinasa ang dalawang mga parameter (filename (f) at mga pangalan ng haligi). Pagkatapos ay tumawag kami ng isa pang pamamaraan naheadheader () na magsusulat ng unang hilera ng file ng CSV, na sa pangkalahatan ay ang pangalan ng mga patlang. Pagkatapos ay nagpapatakbo kami ng isang para sa loop sa listahan ng mga dict na bagay at isulat isa-isa sa file ng CSV gamit ang paraan ng pagsulat ().

Paraan 2: I-save ang dict sa isang text file sa format na JSON (append mode)

Maaari din nating mai-save ang mga dict na bagay sa anyo ng JSON sa isang file. Ang code sa ibaba ay magpapaliwanag ng pareho. Ipinapaliwanag din ng code na ito kung paano namin maidaragdag ang bagong JSON sa isang mayroon nang listahan ng JSON.

Halimbawa : dict_to_file_asJSON.py

# dict_to_file_asJSON.py

angkatjson

dictDemo= [
{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7},
]

filename= 'dict.json'

# Pagsusulat ng listahan ng mga dict na bagay sa isang file
kasama si buksan(filename,mode='sa') bilangf:
jsonmagtapon(dictDemo,f)

# Pagsusulat ng isang bagong dict object sa isang file bilang idagdag at patungan ang buong file
kasama si buksan(filename,mode='sa') bilangf:
dictDemo.idugtong({'Lungsod':'Bejing', 'Bansa':'Tsina'})
jsonmagtapon(dictDemo,f)

Paglabas : dict.json

[{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7},
{'Lungsod':'Bejing', 'Bansa':'Tsina'}
]

Linya 1 hanggang 13 : Ini-import namin ang module na JSON. Pagkatapos ay lumikha kami ng isang listahan ng mga dict na bagay para sa demo. Pagkatapos ay itinalaga namin ang pangalan ng JSON file sa isang variable na filename.

Linya 15 hanggang 17 : Ginagamit namin ang pahayag na 'may' upang buksan ang JSON file para sa pagsulat, at pagkatapos ay ginagamit namin ang json.dump na pamamaraan upang mai-convert ang mga dict na bagay sa JSON at pagkatapos ay isulat sa file.

Linya 20 hanggang 22: Napakahalaga ng mga linyang ito sapagkat ano ang mangyayari? Kung susubukan naming magdagdag ng mga bagong bagay ng JSON sa nakasulat na mga file. Mawawala ang nakaraang data dahil sa pag-o-overtake. Pagkatapos ay maaari naming gamitin ang nakaraang pangalan ng listahan ng dikta tulad ng ginawa namin (dictDemo), at pagkatapos ay idagdag namin ang bagong bagay sa iyon. At sa wakas, iko-convert namin ang buong file sa JSON at mai-overlap ang buong file.

Sa output, maaari nating makita na ang isang bagong object ng JSON ay idinagdag sa isang mayroon nang listahan ng JSON.

Paraan 3: I-save ang mga bagay ng diksyonaryo sa isang file sa form na txt

Maaari din nating mai-save ang diksyunaryo sa isang normal na format ng string sa file. Kaya, ang pamamaraan sa ibaba ay isang napaka-simpleng paraan upang mai-save ang mga object ng diksyonaryo sa file sa form ng teksto. Ngunit ang code na ito ay hindi gagana kung nais naming idagdag ang isang bagong object ng diksiyansa sa file dahil ito ay mag-o-overlap sa dating nakasulat na data. Kaya, para doon, makikita natin ito sa susunod na code.

Halimbawa: dict_to_txt.py

# dict_to_txt.py

dictDemo= [
{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7},
]

filename= 'dict.txt'

# Pagsusulat ng listahan ng mga dict na bagay sa isang file
kasama si buksan(filename,mode='sa') bilangf:
f.sumulat(p(dictDemo))

Output: dict.txt

[{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7}]

Linya 1 hanggang 11 : Lumikha kami ng isang listahan ng mga bagay sa diksyonaryo at itinalaga ang pangalan ng file na dict.txt sa isang variable na filename.

Linya 14 hanggang 15 : Gumagamit kami dito ng ‘may’ pahayag, na awtomatikong humahawak ng pagbubukod. At nagsusulat kami ng listahan ng mga dikta ng bagay bilang isang string sa isang file.

Halimbawa: dict_to_txt_2.py

Nakita namin kung paano i-save ang mga dict na bagay sa isang file sa form na .txt. Ngunit sa code sa itaas, mayroong isang problema sa pagdaragdag ng isang bagong object. Kaya, binabago namin ang paraan ng pagdugtong mula sa 'w' patungong 'a', na maaaring malutas ang aming problema tulad ng ipinakita sa ibaba sa code.

# dict_to_txt_2.py

'' ': cvar
Ang code na ito ay mai-save ang mga dikta ng mga bagay sa file kasama ang
append mode.
'' '

dictDemo= [
{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7},
]

filename= 'dict_to_file_appendMode.txt'

# Pagsusulat ng listahan ng mga dict na bagay sa isang file
kasama si buksan(filename,mode='to') bilangf:
f.sumulat(p(dictDemo))

Linya 7 hanggang 15 : Lumikha kami ng isang listahan ng mga bagay sa diksyonaryo at itinalaga ang pangalan ng file na dict_to_file_appendMode.txt sa isang variable na filename.

Linya 18 hanggang 19 : Binabago namin ang mode = 'a', at malulutas nito ang aming problema. Ipinapakita ng output sa ibaba na nagdagdag kami ng dalawang mga dict na bagay sa parehong file nang hindi na-o-overtake ang nakaraang data.

Output: dict_to_file_appendMode.txt

[{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7}]

[{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7}]

Paraan 4: I-save ang dict object sa isang file gamit ang pickle method.

Maaari din nating mai-save ang dict object sa isang file gamit ang python pickle module. Sinusuportahan ng module ng atsara ang maraming mga bagay para sa serialization sa sawa at sinusuportahan din ang mga dict na bagay.

# dict_to_file_use_pickle.py

angkat atsara

dictDemo= [
{'Lungsod':'New York', 'Bansa':'GAMIT', 'Ranggo':3},
{'Lungsod':'Sydney', 'Bansa':'Australia', 'Ranggo':5},
{'Lungsod':'Dubai', 'Bansa':'UAE', 'Ranggo':10},
{'Lungsod':'Mumbai', 'Bansa':'India', 'Ranggo':17},
{'Lungsod':'Bejing', 'Bansa':'Tsina', 'Ranggo':7},
]

filename= 'picklefile.pkl'

kasama si buksan(filename, 'malayo') bilangf:
atsara.magtapon(dictDemo,f)

Linya 3 hanggang 13 : Ini-import namin ang atsara ng module at lumikha ng isang listahan ng mga dict object. Lumilikha rin kami ng isang filename kung saan mai-save namin ang aming mga dict object.

Linya 15 hanggang 16 : Gumagamit kami dito ng 'may' pahayag at binubuksan ang file na may appending mode at binary format. Pagkatapos ay itinatapon namin ang mga dict na bagay sa file.

Konklusyon

Kaya, nakakita kami ng iba`t ibang mga pamamaraan upang mai-save ang isang bagay ng diksyonaryo sa isang file. Nakasalalay sa gumagamit na kung paano nila nais i-save ang object sa file. Ang pinaka-karaniwang pamamaraan upang mai-save ang dict object sa file ay ang JSON at CSV. Ang mga format na JSON at CSV ay napakapopular mula sa punto ng view ng programa o madaling hawakan sa sawa. Nakita rin namin ang append mode ng pag-save ng mga file.

Ang code para sa artikulong ito ay maaaring ma-download mula sa link na ito:

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