多行字符串中的Yaml文件转义字符

时间:2017-05-08 18:35:51

标签: pyyaml

我想在多行字符串中使用\n字符,但YAML不允许我使用\n字符。如何使用\n字符。

我的YAML:

treeroot:
    branch1:
        name: >
            hello my friend\n how are you ?
            i am fine and you ?\n
            yes\nthanks
        branch1-1:
            name: Node 1-1
    branch2:
        name: Node 2
        branch2-1:
            name: Node 2-1

我知道,我们可以在单行模式下使用\n字符,但我想在多行中使用它。

1 个答案:

答案 0 :(得分:0)

YAML中没有'单行'模式。你有代表字符串的标量,它们可以是普通的(没有引号),单引号和双引号。除此之外,在块式中,你有文字和折叠的风格。

文字和折叠样式始终是多行的(假设您使用|>计算行,但其他标量也可以是多行的。在后一种情况下,字符串中的双重换行将转换为换行符,将其他换行转换为空格。由于只能在双引号字符串中使用反斜杠转义,因此您需要使用以下YAML:

treeroot:
    branch1:
        name: "hello my friend\n how are you ?
            i am fine and you ?\n
            yes\nthanks"
        branch1-1:
            name: Node 1-1
    branch2:
        name: Node 2
        branch2-1:
            name: Node 2-1

第一个键'name'的值与指定为

的值相同
"hello my friend\n how are you ? i am fine and you ?\n yes\nthanks"