yaml
Использование якорей и псевдонимов для передачи содержимого
Поиск…
Создание таблицы «Array of Dictionaries» с помощью якорей YAML в качестве идентификаторов строк
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
проблема
- разработчик хочет выразить структуру таблицы в YAML, где каждая строка ссылается на компактный идентификатор строки
Решение
- использовать якоря YAML, назначая идентификатор привязки для каждой строки в таблице
- в YAML многоразовые «идентификаторы перехвата» называются якорями и псевдонимами
- в YAML многоразовые «идентификаторы перехвата» состоят из буквенно-цифровых токенов, предшествующих амперсанду или звездочке
обоснование
- Ярлыки и псевдонимы YAML позволяют повысить стандартизацию данных
- Ярлыки и псевдонимы YAML обеспечивают
DRY(не повторяйте себя) - в этом примере структура таблицы может быть сконструирована и сохранена, что близко совпадает с базой данных
Ловушки
- Ярлы YAML должны быть объявлены до того, как они будут ссылаться на псевдонимы
- Якорные якоря должны быть уникальными во всем документе
- неспособность указать уникальные якоря вызовет ошибку на
yaml.load() - не все партизаны YAML надежно поддерживают якоря и псевдонимы
Смотрите также
Использование псевдонимов YAML для перекрестных ссылок строк из таблицы YAML
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
person: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
person: *person002
motto: >
Bart! Listen to your father!
- &motto003
person: *person003
motto: >
Hey! YAML is freakin' sweet!
проблема
- разработчик хочет перекрестно ссылаться на строки с якорями из одной таблицы и ссылаться на них с помощью рядов as-aliases в другой таблице
Решение
- использовать псевдонимы YAML, которые перекрестно ссылаются на заранее определенные привязки из другой таблицы
- в YAML многоразовые «идентификаторы перехвата» называются якорями и псевдонимами
- в YAML многоразовые «идентификаторы перехвата» состоят из буквенно-цифровых токенов, предшествующих амперсанду или звездочке
обоснование
- Ярлыки и псевдонимы YAML позволяют повысить стандартизацию данных
- Ярлыки и псевдонимы YAML обеспечивают
DRY(не повторяйте себя) - в этом примере структура таблицы может быть сконструирована и сохранена, что близко совпадает с базой данных
- в этом примере данные и размеры файлов могут быть уменьшены
Ловушки
- в этом конкретном примере
yaml.load()создаст вложенные словари- это называется «проблемой вложенных словарей»,
- под парой имя-значение человека, значение для человека будет под-словарь
- это может быть нежелательным, поскольку это нарушает однородность структуры таблицы
- неспособность правильно указать псевдонимы приведет к отсутствию данных
- (опечатки создадут сломанные перекрестные ссылки)
- YAML не поддерживает переключение файлов по ссылке, поэтому все псевдонимы и привязки должны существовать в одном файле yaml
- не все партизаны YAML надежно поддерживают якоря и псевдонимы
Смотрите также
Использование ключей слияния YAML для перекрестных ссылок строк из другой таблицы YAML
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
<<: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
<<: *person002
motto: >
Bart! Listen to your father!
- &motto003
<<: *person003
motto: >
Hey! YAML is freakin' sweet!
проблема
- разработчик хочет перекрестно ссылаться на строки с якорями из одной таблицы и ссылаться на них с помощью рядов as-aliases в другой таблице
- разработчик хочет избежать создания «проблемы с вложенными словарями»,
Решение
- использовать псевдонимы YAML, с ключами слияния YAML
- в YAML многоразовые «идентификаторы перехвата» называются якорями и псевдонимами
- в YAML многоразовые «идентификаторы перехвата» состоят из буквенно-цифровых токенов, предшествующих амперсанду или звездочке
обоснование
- Ярлыки и псевдонимы YAML позволяют повысить стандартизацию данных
- Ярлыки и псевдонимы YAML обеспечивают
DRY(не повторяйте себя) - в этом примере структура таблицы может быть сконструирована и сохранена, что близко совпадает с базой данных
- в этом примере данные и размеры файлов могут быть уменьшены
Ловушки
- в этом конкретном примере
yaml.load()создаст вложенные словари- под парой имя-значение человека, значение для человека будет под-словарь
- это может быть нежелательным, поскольку это нарушает однородность структуры таблицы
- неспособность правильно указать псевдонимы приведет к отсутствию данных
- (опечатки создадут сломанные перекрестные ссылки)
- YAML не поддерживает переключение файлов по ссылке, поэтому все псевдонимы и привязки должны существовать в одном файле yaml
- не все партизаны YAML надежно поддерживают якоря и псевдонимы
Смотрите также
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow