是否有可能在YAML中锚定一个文字块?

时间:2014-07-09 14:43:50

标签: python yaml pyyaml

我正在做的是创建几个类似下面的文字块,并将它们放在列表中。

literal1: |
    line
    of 
    text and stuff

literal2: |
    ...

现在,我无法弄清楚的部分是将它们列入清单。我已经知道我会使用锚点和别名,但它们似乎并不适用于文字块。

这样做不起作用

literal1: | &literal1
    line
    of
    text and stuff

它吐出错误。而且我也不必创建一个词典

literals: &literal1
    literal1: |
        ....

为此工作。我确信这是一个简单的方法,但我似乎无法找到它。

1 个答案:

答案 0 :(得分:2)

这是你想要做的吗?

literal1: &literal1 |
    line
    of 
    text and stuff

literal2: &literal2 |
    another line
    of text and new stuff

literals:
-  *literal1
-  *literal2    

以下程序将打印...

[' line \ nof \ ntext and stuff \ n','另一行\ nof文本和新内容\ n']

import yaml

data="""
literal1: &literal1 |
    line
    of 
    text and stuff

literal2: &literal2 |
    another line
    of text and new stuff

literals:
-  *literal1
-  *literal2    
"""

pydata = yaml.load(data)
literals = pydata [ 'literals' ]

print ( type(literals), literals )