2013-09-05 2 views
1

У меня есть иерархия категорий в yaml. Нет значений, только ключей. Как я могу сделать повторный узел? Например, я хочу Apps как в категории Entertainment, так и в категории Tech. Обычно повторяющиеся узлы отмечены как значения, как в следующем примере:yaml повторный узел, который является ключом

hr: 
    - Mark McGwire 
    # Following node labeled SS 
    - &SS Sammy Sosa 
rbi: 
    - *SS # Subsequent occurrence 
    - Ken Griffey 

Но в моем случае, у меня есть только ключи, а не значения. Я попробовал следующее, но когда я загрузил его в python, используя pyyaml, я получил словарь, содержащий App: None для ссылки на App.

Entertainment: 
    Music: 
     Country: 
     Hip hop: 
     Pop: 
     Rock: 
     Alternative: 
    &Apps Apps: 
     Games: 
     Productivity: 
     Travel: 
     Finance: 
     Lifestyle: 
Goods: 
    Tech: 
     Visual: 
      Projectors: 
      TVs: 
     Phones: 
      Smart phones: 
      Feature phones: 
     *Apps: 

ответ

1

AFAIK якорь может быть применен к узлам (то есть данные, последовательность и отображение), но не обязательно к ключу в пределах узла. Таким образом, ключ Apps не может быть привязан, но отображение, которое содержит Apps, является честной игрой. Это работает для меня:

Entertainment: 
    Music: 
     Country: 
     Western: 
    Apps: &AppsKeys 
     Games: 
     Travel: 
Goods: 
    Tech: 
     Visual: 
     Phones: 
     Apps: *AppsKeys 

Я думаю, используя ключевое слово Apps немного излишним. Также может быть некоторый способ применить привязку к отдельному ключу, о котором я не знаю. Но я предполагаю, что это невозможно, поскольку он не представляет собой фундаментальную единицу (ака-узел).

Смежные вопросы