当前位置: 首页 > 知识库问答 >
问题:

YAML中的管道符号有什么用途?

万俟招
2023-03-14

我是yaml的新手,我有一个关于用于多行的管道符号()的问题。YAML有类似下面的语法吗?

测试:6+

Name :
  -
   testing:
     val1
  -
   second:
     val2
  -
   third:
     val3
  -
   then
  - 
    final: |
     a
     aa
     aaa
     aaaa : 'test:'
Name :
  -
   testing:
     val1
  -
   second:
     val2
  -
   third:
     val3
  -
   then
  - 
    final: |6+
      a
      aa
      aaa
      aaaa : 'test:'

parser$ParserException:第17行,第12列:需要“block end”,但发现:block mapping start“。

共有1个答案

谈渊
2023-03-14

YAML中行尾的管道符号表示后面的任何缩进文本都应解释为多行标量值。请参阅YAML规范。

具体地说,管道指示(除了缩进)标量值应该以保留换行的方式进行字面解释。相反,>字符指示后面是多行“折叠”标量,这意味着换行符被转换为空格。例如:

python prettyprint-override">>>> import yaml
>>> yaml.load("""
... |
...  This is a multi-line
...  literal style scalar.
... """)
'This is a multi-line\nliteral style scalar.\n'
>>> yaml.load("""
... >
...  This is a multi-line
...  folded scalar; new lines are folded into
...  spaces.
... """)
'This is a multi-line folded scalar; new lines are folded into spaces.\n'

6+部分是缩进指示器(一个明确规定应该使用多少空格的缩进),它带有“chomping indicator”+控制应该如何处理标量文字末尾的额外空格。

您得到的错误是一个棘手的错误:这是因为缩进应该是相对于当前块级元素的。因此,在本例中,它应该是4+而不是6+,因为最后一个块级元素是数组项(由-指定),文字是从它缩进的。有点奇怪的是,final:映射不被认为是块元素,即使它的值是多行的。如果你仔细想想,它还是有意义的--它仍然只是一个“一行式”的“键:值”映射。该值只是碰巧为多行标量值使用了一种特殊的语法。让人困惑,但却始终如一...

 类似资料:
  • 有人能解释一下CSS中“~”符号的用法吗? 我举了一个例子 我在这里没有得到~符号的用法。请帮帮我。

  • 问题内容: 我已经看到在某些功能前面使用了,如下所示: 这个符号有什么用? 问题答案: 它抑制错误消息-请参阅PHP手册中的错误控制运算符。

  • 我在一些文章中读到,在一些语言中,比如JavaScript,赋值运算符可以用于条件语句。我想知道那次行动背后的逻辑是什么?据我所知,条件检查语句中只允许使用比较运算符。

  • 问题内容: 我已经检查了一些站点,它们的网址中带有井号(#)。它有什么作用? 问题答案: 这是“片段”或“命名锚点”。您可以用来链接到文档的 一部分 。通常,当您链接到页面时,浏览器会在页面顶部将其打开。但是,您链接到一半的部分,则可以使用该片段链接到该标题(或其他内容)。 如果页面内没有标签,则浏览器将仅链接到页面顶部。如果该片段为空,那么它也将仅链接到页面顶部。 仅 对于片段,这只是到 当前

  • 问题内容: 我偶然发现了这个问题,发现用户使用的是我从未见过的符号: 那么这个符号在CSS3中是新出现的,还是在某种程度上被我忽略的旧事物?这是否类似于您使用ID 和使用类的位置?Google没有给我任何与此相关的好文章。CSS中符号的目的是什么 ? 问题答案: 自CSS1诞生以来,它就已经存在了,尽管可以说在最近的CSS2,CSS3和CSS3结构中它变得越来越普遍。该语法本身,不过,正如我所说,

  • 所以我刚刚开始使用文件而不是,因为它更具可读性。我在文件中看到它们以开头。我谷歌了一下,找到了下面的解释。 YAML使用三个破折号(“--”)将指令与文档内容分开。如果没有指令,这也可以作为文档开始的信号。 此外,我尝试了一个没有的示例,并理解拥有它们不是强制性的。 我想我对指令和文档没有清楚的理解。谁能用一个简单的例子解释一下?