yaml tutorial comprehensive guide yaml using python
Овај ИАМЛ водич објашњава шта је ИАМЛ, основни концепти ИАМЛ-а као што су типови података, ИАМЛ валидатор, парсер, уређивач, датотеке итд. Уз помоћ примера кода који користе Питхон:
Обрада текста у рачунарству помаже програмерима да креирају програме и апликације који се могу конфигурисати. Означни језици играју виталну улогу у складиштењу и размени података у читљивом формату.
Поред тога, програмери користе језике за означавање као уобичајене и стандардне формате за размену података између различитих система. Неки примери од језика за означавање укључују ХТМЛ, КСМЛ, КСХТМЛ и ЈСОН.
Подијелили смо информације о још једном означном језику у овом ИАМЛ водичу који је лако пратити.
Овај водич помаже читаоцима у проналажењу одговора на доле наведена питања. Ученици могу да предузму прве кораке и разумеју мистерију маркуп језика уопште и посебно ИАМЛ.
Питања укључују:
- Зашто су нам потребни језици за означавање?
- Шта значи ИАМЛ?
- Зашто је створен ИАМЛ?
- Зашто требамо учити ИАМЛ?
- Зашто је данас важно научити ИАМЛ?
- Какву врсту података могу да чувам у ИАМЛ-у?
Овај водич је користан за искусне читаоце и док разговарамо о концептима у контексту програмирања уопште, као и у контексту тестирања софтвера. Овде ћемо такође обрађивати теме попут сериализације и десеријализације.
Шта ћете научити:
Шта је ИАМЛ
Креатори ИАМЛ-а су га у почетку именовали као „Још један језик за означавање“. Међутим, с временом се акроним променио у „ИАМЛ није МаркУп језик“. ИАМЛ је скраћеница која се односи на себе и назива се рекурзивна скраћеница.
Овај језик можемо користити за чување података и конфигурације у читљивом формату. ИАМЛ је основни језик за учење. И његове конструкције су лако разумљиве.
Цларк, Инги и Орен су створили ИАМЛ да би се позабавили сложеношћу разумевања других означних језика, који су тешко разумљиви, а крива учења је такође стрмија од учења ИАМЛ-а.
Да бисмо учење учинили угоднијим, као и увек, користимо пример пројекта. Домаћини смо овом пројекту на Гитхуб-у са МИТ лиценцом да би свако могао да га модификује и по потреби пошаље захтев за повлачењем.
Можете да клонирате пројекат помоћу наредбе доле.
git clone git@github.com:h3xh4wk/yamlguide.git
Међутим, ако је потребно, можете преузмите зип датотека за код и примере.
Читаоци могу клонирати овај пројекат уз помоћ ИнтеллиЈ ИДЕА. Молимо вас да попуните одељак о предусловима за инсталирање Питхона и да га конфигуришете са ИнтеллиЈ ИДЕА пре клонирања пројекта.

Зашто су нам потребни маркерски језици
Немогуће је све написати у софтверском коду. То је зато што с времена на време морамо да одржавамо код и морамо да апстрахујемо детаље на спољне датотеке или базе података.
Најбоља је пракса да код сведете на најмању могућу меру и створите га на начин да му не требају модификације за различите потребне уносе података.
На пример, можемо написати функцију за преузимање улазних података из спољне датотеке и штампање њеног садржаја ред по ред, уместо да код и податке заједно записујемо у једну датотеку.
Сматра се најбољом праксом јер раздваја бриге око стварања података и креирања кода. Програмски приступ апстраховања података из кода осигурава лако одржавање.
Означни језици олакшавају нам складиштење хијерархијских информација у приступачнијем и лакшем формату. Те датотеке могу да се размењују између програма путем Интернета, не трошећи много пропусног опсега и подржавају најчешће протоколе.
Ови језици следе универзални стандард и подржавају различита кодирања која подржавају знакове готово са свих говорних језика на свету.
недефинисана референца на главни ц ++
Најбоља ствар код маркуп језика је то што њихова општа употреба није повезана са било којом системском наредбом, а ова карактеристика их чини сигурнијим и разлог је њиховог широког и светског усвајања. Стога можда нећете пронаћи ниједну ИАМЛ наредбу коју можемо директно покренути за стварање било каквих резултата.
Предности употребе ИАМЛ датотеке
ИАМЛ има много предности. Доња табела приказује поређење између ИАМЛ и ЈСОН. ЈСОН је скраћеница од ЈаваСцрипт Објецт Нотатион и користимо га као формат за размену података.
Атрибут | ИАМЛ | ЈСОН |
---|---|---|
Говорност | Мање опширно | Опширнији |
Типови података | Подржава сложене типове података. | Не подржава сложене типове података. |
Коментари | Подржава писање коментара користећи '#'. | Не подржава писање коментара. |
Читљивост | Читљивије за људе. | Мање читљиво за људе. |
Самореференције | Подржава референцирање елемената у истим документима помоћу '&,' и *. | Не подржава само-референцирање. |
Више докумената | Подржава више докумената у једној датотеци. | Подржава један документ у једној датотеци. |
Због предности ИАМЛ-а у односу на друге формате датотека, попут ЈСОН-а, ИАМЛ је више раширен међу програмерима због своје свестраности и флексибилности.
Предуслови
Прво инсталирамо Питхон, а затим конфигуришемо Питхон и његове пакете помоћу ИнтеллиЈ ИДЕА. Стога, инсталирајте ИнтеллиЈ ИДЕА ако већ није инсталиран пре него што наставите.
Инсталирајте Питхон
Следите ове кораке да бисте инсталирали и поставили Питхон на Виндовс 10.
Корак 1
Преузмите Питхон и инсталирајте га одабиром подешавања као што је приказано на доњој слици.

Корак 2
Покрените подешавање и одаберите прилагодите инсталацију. Означите поље за потврду Додавање Питхона у ПАТХ .

Корак # 3
Прилагодите локацију Питхона како је приказано на слици.

Корак # 4
Крените даље са инсталацијом. На крају чаробњака за инсталацију Онемогућите ограничење путање у оперативном систему Виндовс кликом на опцију у чаробњаку.

Сада је подешавање Питхона завршено.
Конфигуришите Питхон помоћу ИнтеллиЈ ИДЕА
Конфигуришимо сада ИнтеллиЈ ИДЕА са Питхоном. Први корак је инсталирање додатака да би могли да раде на Питхон пројектима.
Инсталирајте додатке за Питхон
Инсталирајте издање Питхон Цоммунити Едитион

Инсталирајте Питхон Сецурити

Следите кораке у наставку да бисте довршили конфигурацију.
Корак 1
Користите мени Датотека и идите на подешавања платформе. Кликните на Додај СДК дугме .

Корак 2
Изаберите Опција виртуелног окружења и изаберите Питхонов основни тумач као онај који је инсталиран у претходном кораку.

Корак # 3
Сада изаберите виртуелно окружење створено у претходном кораку под Пројецт СДК Сеттингс .

За један пројекат препоручујемо једно виртуелно окружење.
Корак # 4 (опционално)
Отворите датотеку цонфиг.пи из истраживача пројекта и кликните на захтеви за инсталирање , као што је приказано на доњој слици.

Ако желите, занемарите захтев за ипитхон поништавањем ознаке опције у дијалошком оквиру Одабир пакета.

Сада можете да пређете на следећи одељак да бисте научили основе ИАМЛ-а.
Основе ИАМЛ-а
У овом одељку помињемо основе ИАМЛ-а уз помоћ пример датотеке назване цонфиг.имл и цонфиг.пи. Чврсто верујемо да објашњавање концепата ИАМЛ паралелно са његовом употребом у програмском језику чини учење бољим.
Стога, док објашњавамо основе у ИАМЛ-у, укључујемо и употребу Питхона за читање и писање података ускладиштених у ИАМЛ-у.
Хајде сада да креирамо или отворимо цонфиг.имл у нашим уредницима и да разумемо ИАМЛ.
--- quiz: description: > 'This Quiz is to learn YAML.' questions: - ('How many planets are there in the solar system?', 'Name the non-planet') - 'Who is found more on the web?' - 'What is the value of pi?' - 'Is pluto related to platonic relationships?' - 'How many maximum members can play TT?' - 'Which value is no value?' - 'Don't you know that the Universe is ever-expanding?' answers: - (8, 'pluto') - cats - 3.141592653589793 - true - 4 - null - no # explicit data conversion and reusing data blocks extra: refer: &id011 # give a reference to data x: !!float 5 # explicit conversion to data type float y: 8 num1: !!int '123' # conversion to integer str1: !!str 120 # conversion to string again: *id011 # call data by giving the reference
Приметите да ИАМЛ датотеке имају.липродужење. Језик разликује велика и мала слова. За увлачење користимо размаке, а не језичке.
Уз ове основе, схватимо и типове података. У поменутом ИАМЛ-у представљали смо информације у квизу. Квиз је приказан као чвор на основном нивоу, који има атрибуте као што су опис, питања и одговори.
ИАМЛ типови података
ИАМЛ може да складишти скаларе, секвенце и мапирања. Приказали смо како се у датотеку цонфиг.имл записују сви потребни типови података.
Скалари су низови, цели бројеви, пловци и логичке вредности. Подаци типа Стрингс затворени су у двоструке наводнике “. Међутим, ИАМЛ не намеће писање низова у двоструким наводницима и можемо користити> или | за писање дугих низова у више редова.
Погледајте разне типове података и мапиране вредности у доњој табели.
Тип података | Примери типова података у Цонфиг.имл |
---|---|
Низ Низови се могу чувати са наводницима или без њих. | квиз: опис:> Овај квиз жели да научи ИАМЛ питања: - 'Ко се више налази на вебу?' одговори: - мачке |
Цео број и лебдење Цели бројеви и флоат помињу се у свом изворном облику | квиз: питања: - 'Која је вредност пи?' - 'Колико максимално чланова може играти ТТ?' одговори: - 3.141592653589793 - 4 |
Боолеан Логички вредности се чувају помоћу низа тачно / нетачно или да / не | квиз: питања: - 'Да ли је плуто повезан са платонским везама?' - 'Зар не знате да се Универзум непрестано шири?' одговори: - истинито - немој |
Секвенце Секвенце се креирају помоћу угластих заграда (. | квиз: одговори: - (8, 'плуто') |
Референце Самореференцирање се користи уз помоћ & и * | # експлицитна конверзија података и поновна употреба блокова података ектра: погледајте: & ид011 # дају референцу на податке # Остале вредности опет: * ид011 # подаци позива давањем референце |
У наставку су наведени неки од вредних пажње додатних елемената ИАМЛ датотеке.
Документ
Сада приметите три цртице -. Означава почетак документа. Први документ смештамо у квиз као основни елемент, а опис, питања и одговоре као подређене елементе са припадајућим вредностима.
Експлицитни типови података
Обратите пажњу на кључ одељка који се зове ектра у цонфиг.имл. Видимо да уз помоћ двоструких узвика можемо изричито поменути типове података вредности сачуваних у датотеци. Претварамо цели број у флоат користећи !! флоат. Користимо !! стр за претварање целог броја у низ, а користимо !! инт за претварање низа у цео број.
Питхон-ов ИАМЛ пакет нам помаже у читању ИАМЛ датотеке и интерно је складиштимо као речник. Питхон кључеве речника чува као низове и аутоматски претвара вредности у типове података Питхон, осим ако није изричито наведено помоћу „!!“.
Прочитајте ИАМЛ датотеку на Питхону
Генерално, користимо ИАМЛ Едитор и ИАМЛ Валидатор у време писања ИАМЛ-а. ИАМЛ Валидатор проверава датотеку у време писања.
Питхон ИАМЛ пакет има уграђени ИАМЛ парсер, који рашчлањује датотеку пре него што је сачува у меморији.
Хајде сада да креирамо и отворимо цонфиг.пи у одговарајућим уредницима са садржајем у наставку.
import yaml import pprint def read_yaml(): ''' A function to read YAML file''' with open('config.yml') as f: config = yaml.safe_load(f) return config if __name__ == '__main__': # read the config yaml my_config = read_yaml() # pretty print my_config pprint.pprint(my_config)
Да бисте тестирали да ли сте извршили горе наведене кораке, покрените цонфиг.пи.
Отворите датотеку цонфиг.пи у програму ИнтеллиЈ ИДЕА, пронађите главни блок и покрените датотеку помоћу иконе за репродукцију.

Једном када покренемо датотеку, видимо конзолу са излазом.

У функцији реад_иамл отварамо датотеку цонфиг.имл и користимо методу сафе_лоад ИАМЛ пакета да читамо ток као Питхон речник, а затим враћамо овај речник помоћу кључне речи ретурн.
променљива ми_цонфиг садржи садржај датотеке цонфиг.имл као речник. Користећи Питхонов лепи пакет за штампу назван ппринт, штампамо речник на конзолу.
Обратите пажњу на горњи излаз. Све ИАМЛ ознаке одговарају Питхоновим типовима података, тако да програм може даље да користи те вредности. Овај процес конструкције Питхон објеката из уноса текста назива се Десеријализација.
Напишите ИАМЛ датотеку у Питхон
Отворите цонфиг.пи и додајте следеће редове кода одмах испод методе реад_иамл и изнад главног блока датотеке.
def write_yaml(data): ''' A function to write YAML file''' with open('toyaml.yml', 'w') as f: yaml.dump(data, f)
У методи врите_иамл отварамо датотеку која се зове тоиамл.имл у режиму писања и користимо методу думп-а ИАМЛ пакета да напишемо ИАМЛ документ у датотеку.
Сада додајте доње редове кода на крају датотеке цонфиг.пи
# write A python object to a file write_yaml(my_config)
Сачувајте цонфиг.пи и покрените датотеку помоћу наредбе у наставку или помоћу иконе за репродукцију у ИДЕ-у.
python config.py
Видимо да горња команда исписује садржај цонфиг.имл на конзолу или на излаз система. Питхон програм записује исти садржај у другу датотеку која се зове тоиамл.имл. Процес писања Питхон објекта у спољну датотеку назива се сериализација.
Више докумената у ИАМЛ-у
ИАМЛ је прилично свестран и можемо похранити више докумената у једну ИАМЛ датотеку.
Направите копију датотеке цонфиг.имл као цонфигс.имл и залепите доње редове на крај датотеке.
--- quiz: description: | This is another quiz, which is the advanced version of the previous one questions: q1: desc: 'Which value is no value?' ans: Null q2: desc: 'What is the value of Pi?' ans: 3.1415
Три цртице - у горњем исечку означава почетак новог документа у истој датотеци. Употреба | након што нам описна ознака омогућава да напишемо вишередни текст типа стринг. Овде смо у новом документу ускладиштили питања и одговоре као засебна мапирања угнежђена испод питања.
Сада креирајте нову датотеку која се зове цонфигс.пи и залепите доле наведени код у датотеку.
import yaml import pprint def read_yaml(): ''' A function to read YAML file''' with open('configs.yml') as f: config = list(yaml.safe_load_all(f)) return config def write_yaml(data): ''' A function to write YAML file''' with open('toyaml.yml', 'a') as f: yaml.dump_all(data, f, default_flow_style=False) if __name__ == '__main__': # read the config yaml my_config = read_yaml() # pretty print my_config pprint.pprint(my_config) # write A python object to a file write_yaml(my_config)
Примети промене у функцијама реад_иамл и врите_иамл. У реад_иамл користимо методу сафе_лоад_алл пакета ИАМЛ за читање свих докумената присутних у цонфигс.имл као листе. Слично томе, у врите_иамл користимо методу думп_алл за писање листе свих претходно прочитаних докумената у нову датотеку која се зове тоиамл.имл.
Сада покрените цонфигс.пи.
python configs.py
Излаз горње наредбе приказан је испод.
({'quiz': {'answers': ((8, 'pluto'), 'cats', 3.141592653589793, True, 4, None, False), 'description': 'This Quiz is to learn YAML', 'questions': (('How many planets are there in the solar system?', 'Name the non planet'), 'Who is found more on the web?', 'What is the value of pi?', 'Is pluto related to platonic relationships?', 'How many maximum members can play TT?', 'Which value is no value?', 'Don't you know that Universe is ever-expanding?')}}, {'quiz': {'description': 'This is another quiz, which
' 'is the advanced version of the previous one
', 'questions': {'q1': {'ans': None, 'desc': 'Which value is no value?'}, 'q2': {'ans': 3.1415, 'desc': 'What is the value of Pi?'}}}})
Излаз је сличан претходно поменутом излазу за појединачни документ. Питхон претвара сваки документ у цонфигс.имл у Питхон речник. Олакшава даљу обраду и употребу вредности.
Често постављана питања
Током рада са ИАМЛ-ом можете наићи на доленаведена питања.
П # 1) Да ли је могуће сачувати Ред ИАМЛ мапирања?
Одговор: Да, могуће је прилагодити подразумевано понашање утоваривача у Питхон-овом пиИАМЛ пакету. Укључује употребу ОрдередДицтс и замену Басе разрешивача прилагођеним методама, као што је приказано овде .
П # 2) Како сачувати слику у ИАМЛ-у?
Одговор: Можете басе64 кодирати слику и задржати је у ИАМЛ-у, као што је приказано доле.
image: !!binary | iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==
П # 3) Која је разлика између> и | тагови у ИАМЛ-у?
Одговор: И> и | омогућавају писање вредности у више редова у ИАМЛ-у. За писање вишередних низова и | користимо знак већи од> да представљају дословне вредности. Вредности написане помоћу | не треба бежати. На пример, можемо сачувати ХТМЛ помоћу |.
template: | This is a test paragraph
This is another paragraph
П # 4) Који је значај ... на крају ИАМЛ датотеке.
Одговор: Три тачке ... су опционални идентификатори. Они се могу користити за означавање краја документа у току.
П # 5) Како написати коментаре у ИАМЛ датотеку?
Одговор: Користимо # за писање коментара у једном реду. ИАМЛ не подржава вишередне коментаре. Стога морамо да користимо # у више редова, као што је приказано доле.
# this is # a single line as well as multi-line # comment
Закључак
У овом водичу смо покрили кораке припреме развојног окружења у Виндовс-у и Линук-у за почетак рада са ИАМЛ-ом. Скоро смо разговарали о свим концептима ИАМЛ-ових основних типова података, ИАМЛ уређивачу и ИАМЛ парсеру.
Такође смо истакли предности коришћења ИАМЛ-а у односу на друге означне језике и пружили примере кода уз помоћ пратећег узорка пројекта. Надамо се да сада полазници могу да користе ИАМЛ за апстраховање података из логике апликације за писање ефикасног и одрживог кода.
Срећно учење !!
Препоручено читање
- Питхон Водич за почетнике (Практични БЕСПЛАТНИ Питхон тренинг)
- Питхон процес увођења и инсталације
- Водич за Питхон Дјанго - Први кораци са Дјанго-ом
- Питхон ДатеТиме Водич са примерима
- Водич за руковање датотекама у Питхону: Како креирати, отварати, читати, писати
- Водич за ТестЦомплете: Свеобухватан водич за алат за тестирање ГУИ-а за почетнике
- Изјаве о контроли Питхона (Питхон Цонтинуе, Бреак анд Пасс)
- Питхон ООПс концепти (класе, објекти и наслеђивање Питхон)