在yaml中使用'''块字符串进行块注释的任何问题?

时间:2018-05-13 23:55:04

标签: yaml

我一直在使用'''在yaml中进行块注释。像:

'''
This
is 
a
comment
'''

我注意到这种方法不是How do you block comment in yaml问题的答案之一。有没有理由不这样做(除了VIM中可怕的多行字符串格式故障)?它会被加载到内存或其他可能有问题的东西吗?

2 个答案:

答案 0 :(得分:1)

YAML comments#与其他具有空格的标记分开,并在行尾终止

如果你这样做:

'''
This
is
a
comment
'''

指定标量节点,以一(1)个单引号开头和结尾。这是因为在single quoted style标量节点中,您可以通过使用单引号转义它来插入单引号。由于YAML确实将上述加载作为字符串' This is a comment '(包含引号的字符串)展开。

但是,如果您在42之类的标量节点之后将其作为注释插入,如下所示:

answer: 42 '''
  This
  is
  a
  comment
  '''

您仍然拥有有效的YAML,但这会加载例如在Python中作为带有键answer和关联值42 ''' This is a comment '''的词典。一个字符串,如果您期望整数值42,可能会给您一些错误。

答案 1 :(得分:0)

根据规范,仅使用#: http://yaml.org/spec/1.2/spec.html#comment/

至于为什么? “因为他们这么说”,我猜想YAML的一些可读性会因多行注释而丢失。

你使用'''是Python文档字符串的标准。