初识YAML

晚上本来想看看Julia语言的,最后发现需要花额外的不少时间,就先放放,那就看看Yaml吧,要学习的话,周期短,本身也比较简单清晰。

早些年的时候W3C的标准还是很火,基于XML的方案好像一下子成了万物之本,尤其在异构的场景中非常普遍。XML的体系还蛮庞大,会结合xsl(可扩展样式语言)或者xslt(可扩展样式表语言)转换,当年学习的时候捧着厚厚的一本书,里面的例子非常多。

等到了工作的时候,JSON已经开始崭露头角,已经有很多项目开始使用JSON的方式来做配置数据的同步了,现在来看,JSON如日中天,发展的很不错,而XML似乎已经成为了历史的见证,这,可能就是技术的更新迭代。

YAML语言是现在很有潜力的序列化语言,比 XML 更为简单易读,效率更高,专门用来写配置文件的语言,比 JSON 格式还要方便。

安装的时候,可以使用pip install yaml来快速完成。

大小写敏感

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

我们简单来看一下,创建一个文件test.yaml,内容如下:

userInfo:

name: jeanron100

password: jeanron100

phone: 15210191500

然后创建一个Python文件,当然用其他语言也可以解析。

Python脚本的内容如下:

整个过程,看不出有什么难点,就是读取文件test.yaml.

运行程序 python user.py的结果如下:

jeanron100

{'phone': 15210191500, 'password': 'jeanron100', 'name': 'jeanron100'}

可以看到这种格式的文件,我们使用Python结合YAML的方式来解析,几乎不需要做什么额外的设置就可以解析出来,这是YAML的优势之一。

YAML 支持的数据结构有三种:

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

纯量(scalars):单个的、不可再分的值

自己测试了下,初步感觉确实蛮简洁,还不错。后续继续补充几个YAML的详细案例。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171213B0043E00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励