yaml重复节点是一个关键

时间:2013-09-05 04:38:53

标签: yaml

我在yaml中有一个类别层次结构。没有值,只有键。如何制作重复节点?例如,我在Apps类别和Entertainment类别中都需要Tech。通常将重复的节点标记为值,如以下示例所示:

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

但在我的情况下,我只有键,而不是值。我尝试了以下操作,但是当我使用pyyaml将其加载到python中时,我得到了一个包含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 个答案:

答案 0 :(得分:1)

AFAIK锚点可以应用于节点(即数据,序列和映射),但不一定适用于节点内的键。因此Apps密钥无法锚定,但Apps包含的映射是公平游戏。这对我有用:

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

我想使用Apps关键字有点多余。可能还有某种方法可以将锚点应用于我不知道的单个键。但我的猜测是,它不可能,因为它不代表一个基本单位(又称节点)。