Речник можемо записати у датотеку у Питхону на различите начине, на пример:
- Датотека вредности раздвојена зарезима (.цсв)
- Јсон датотека (.јсон)
- Текстуална датотека (.ткт)
- Датотека за туршију (.пкл)
Објаснићемо све горе наведене методе.
Метод 1: Сачувајте речник у ЦСВ формату
Да бисмо речник сачували у ЦСВ (Зарезом одвојене вредности), користимо ЦСВ модул. Вредности раздвојене зарезима за чување питхон дицт-а најчешћи су и најпознатији метод. Већина програмера користи ову методу само за чување речника у датотеци. Чување речника у датотеци као ЦСВ је врло једноставно јер морамо пренети податке као низ.
Пример_1: дицт_то_цсв.пи
# дицт_то_цсв.пи
увоз цсв
дицт_сампле= {'име':„ЛинукХинт“, 'град':'ТО', 'образовање':'Инжењеринг'}
са отворен('дата.цсв', 'ин') каоф:
закључудицт_сампле.кључеве():
ф.писати('% с,% с н'%(кључ,дицт_сампле[кључ]))
Линија 2 : Увозимо ЦСВ питхон модул.
Ред 4 : Креирали смо узорак дицт података. Покушаћемо да га сачувамо у облику ЦСВ датотеке.
Ред 6: Овде користимо израз „витх“ за писање ЦСВ датотеке. Наредба „витх“ аутоматски обрађује изузетке током читања или писања датотеке. Отварамо датотеку дата.цсв у режиму писања и додељујемо тај објекат променљивој ф.
Ред 7 , Покрећемо фор петљу која издваја кључ, ау следећем реду записује кључ и кеи_валуе у ЦСВ датотеку. Дакле, ова петља ће се покретати све док нема података.
Излаз: дата.цсв
име,ЛинукХинтград,ТО
образовање,Инжењеринг
Дакле, горе наведено приказује излазну датотеку након писања на дата.цсв.
Сада разумемо како сачувати дикт у датотеку у облику ЦСВ -а. Покушајмо са другим примером где желимо да упишемо листу дицт објеката у ЦСВ датотеку.
Пример_2: дицт_то_цсв_2.пи
# дицт_то_цсв_2.пиувоз цсв
цсвЦолумнс= ['Град', „Држава“, 'Ранг']
дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]
цсвФилеНаме= 'дата.цсв'
покушати:
са отворен(цсвФилеНаме, 'ин') каоф:
писац= цсв.ДицтВритер(ф,имена поља=цсвЦолумнс)
писац.заглавље писања()
заподатакаудицтДемо:
писац.вритеров(података)
осим ИОЕррор:
принт(„Дошло је до грешке“)
Редови 3 до 12: Увозимо питхон ЦСВ модул и креирамо листу дицт објеката. Такође смо направили листу имена колона.
Ред 13: Име датотеке ЦСВ смо доделили променљивој.
Ред 15: Користимо наредбу ‘витх’, а изјава додељује објекат методе __ентер__ за враћање променљивој ф.
Редови 16 до 19: Након додељивања повратног објекта променљивој ф, позвали смо методу ДицтВритер ЦСВ модула и проследили два параметра (назив датотеке (ф) и имена колона). Затим позивамо другу методу вритехеадер () која ће написати први ред ЦСВ датотеке, што је генерално назив поља. Затим покрећемо фор петљу на листи дицт објеката и уписујемо један по један у ЦСВ датотеку користећи вритеров () методу.
2. метод: Сачувајте дикт у текстуалну датотеку у ЈСОН формату (режим додавања)
Такође можемо сачувати дицт објекте у облику ЈСОН -а у датотеку. Код испод објашњава исто. Овај код такође објашњава како можемо додати нови ЈСОН на постојећу листу ЈСОН -а.
Пример : дицт_то_филе_асЈСОН.пи
#дицт_то_филе_асЈСОН.пиувозјсон
дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]
назив документа= 'дицт.јсон'
# Писање листе дицт објеката у датотеку
са отворен(назив документа,моде='ин') каоф:
јсон.Депонија(дицтДемо,ф)
# Писање новог дицт објекта у датотеку као додавање и преписивање целе датотеке
са отворен(назив документа,моде='ин') каоф:
дицтДемо.додати({'Град':'Бејинг', „Држава“:„Кина“})
јсон.Депонија(дицтДемо,ф)
Оутпут : дицт.јсон
[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
{'Град':'Бејинг', „Држава“:„Кина“}
]
Редови 1 до 13 : Увозимо ЈСОН модул. Затим креирамо листу дицт објеката за демо. Затим смо имену ЈСОН датотеке доделили променљиво име датотеке.
Редови 15 до 17 : Користимо израз 'витх' за отварање ЈСОН датотеке за писање, а затим користимо методу јсон.думп за претварање дицт објеката у ЈСОН, а затим упис у датотеку.
Редови 20 до 22: Ове линије су веома важне, јер шта ће се догодити? Ако покушамо да додамо нове ЈСОН објекте у већ написане датотеке. Претходни подаци ће бити изгубљени због преписивања. Затим можемо користити претходни назив листе дицт као што смо то учинили (дицтДемо), а затим додајемо нови објект у то. И на крају, претварамо целу датотеку у ЈСОН и преписујемо целу датотеку.
У излазу можемо видети да је нови ЈСОН објекат додат на постојећу ЈСОН листу.
Метод 3: Сачувајте објекте речника у датотеку у ткт облику
Речник такође можемо сачувати у нормалан формат низа у датотеку. Дакле, доња метода је врло једноставан начин за чување објеката речника у датотеци у текстуалном облику. Али овај код неће радити ако желимо да додамо нови објекат речника у датотеку јер ће преписати претходно написане податке. Дакле, за то ћемо видети у следећем коду.
Пример: дицт_то_ткт.пи
#дицт_то_ткт.пидицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]
назив документа= 'дицт.ткт'
# Писање листе дицт објеката у датотеку
са отворен(назив документа,моде='ин') каоф:
ф.писати(п(дицтДемо))
Излаз: дицт.ткт
[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7}]
Редови 1 до 11 : Направили смо листу објеката речника и доделили име датотеке дицт.ткт променљивом имену датотеке.
Редови 14 до 15 : Овде користимо израз „витх“ који аутоматски обрађује изузетак. И записујемо дицт листу објеката као низ у датотеку.
Пример: дицт_то_ткт_2.пи
Видели смо како сачувати дицт објекте у датотеку у .ткт форми. Али у горњем коду постоји један проблем са додавањем новог објекта. Дакле, мењамо методу додавања из 'в' у 'а', што може решити наш проблем као што је приказано испод у коду.
#дицт_то_ткт_2.пи'' ': цвар
Овај код ће сачувати дицт објекте у датотеци са
мод додавања.
'' '
дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]
назив документа= 'дицт_то_филе_аппендМоде.ткт'
# Писање листе дицт објеката у датотеку
са отворен(назив документа,моде='до') каоф:
ф.писати(п(дицтДемо))
Ред 7 до 15 : Направили смо листу објеката речника и доделили име датотеке дицт_то_филе_аппендМоде.ткт променљивом имену датотеке.
Редови 18 до 19 : Мењамо начин рада = ‘а’ и то ће решити наш проблем. Доњи излаз показује да смо додали два дицт објекта у исту датотеку без преписивања претходних података.
Излаз: дицт_то_филе_аппендМоде.ткт
[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7}]
[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7}]
Метод 4: Сачувајте дицт објекат у датотеку помоћу методе пицкле.
Такође можемо сачувати дицт објекат у датотеку помоћу питхон пицкле модула. Пицкле модул подржава многе објекте за сериализацију у питхону и такође подржава дицт објекте.
# дицт_то_филе_усе_пицкле.пиувоз кисели краставац
дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]
назив документа= 'пицклефиле.пкл'
са отворен(назив документа, 'далеко') каоф:
кисели краставац.Депонија(дицтДемо,ф)
Линија 3 до 13 : Увозимо пицкле модула и креирамо листу дицт објеката. Такође креирамо назив датотеке у коју ћемо сачувати наше дицт објекте.
Редови 15 до 16 : Овде користимо израз „витх“ и отварамо датотеку у режиму додавања и бинарном формату. Затим избацујемо дицт објекте у датотеку.
Закључак
Дакле, видели смо различите методе за чување речничког објекта у датотеци. Од корисника зависи како желе да сачувају објекат у датотеку. Најчешћи начини чувања дицт објекта у датотеци су ЈСОН и ЦСВ. Формати ЈСОН и ЦСВ су веома познати са програмске тачке гледишта или су лаки за руковање у питхону. Такође смо видели додајући начин чувања датотека.
Код за овај чланак можете преузети са ове везе:
хттпс://гитхуб.цом/схекхарпандеи89/саве-дицт-објецт-то-а-филе