OpenStack计算机硬件&计算机系统&计算机知识点机器学习与计算机视觉

YAML文件

2017-07-12  本文已影响28人  廖马儿

简介

YAML:YAML Ain't Markup Language 另一种标记语言。(YAML不是一种置标语言)
但为了强调这种语言以数据做为中心,而不是以置标语言(也就是说标记语言,像XML, HTML等)为重点,而用返璞词重新命名。
它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。

它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。


格式

数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号-来表示,map结构里面的key/value对用冒号:来分隔。样例如下:

house:
  family:
    name: Doe
    parents:
      - John
      - Jane
    children:
      - Paul
      - Mark
      - Simone
  address:
    number: 34
    street: Main Street
    city: Nowheretown
    zipcode: 12345

字串不一定要用双引号标识;
在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符);
允许在文件中加入选择性的空行,以增加可读性;
在一个档案中,可同时包含多个文件,并用“——”分隔;
选择性的符号“...”可以用来表示档案结尾(在利用串流的通讯中,这非常有用,可以在不关闭串流的情况下,发送结束讯号)。

单行缩写:

YAML也有用来描述好几行相同结构的数据的缩写语法,数组用'[]'包括起来,hash用'{}'来包括。因此,上面的这个YAML能够缩写成这样:

house:
  family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }
  address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }

适用场景:

1)脚本语言
由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。列一下现有的语言实现:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript,除了Java,其他都是脚本语言。
2)序列化
YAML比较适合做序列化。因为它是宿主语言数据类型直转的。
3)配置文件
YAML做配置文件也不错。写YAML要比写XML快得多(无需关注标签或引号),并且比ini文档功能更强。
比如Ruby on Rails的配置就选用的YAML。对ROR而言,这很自然,也很省事.
由于兼容性问题,不同语言间的数据流转建议不要用YAML.

上一篇下一篇

猜你喜欢

热点阅读