yaml

1|0定义

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)
后缀

  • yaml
  • yml

2|0语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释
  • 冒号和‘-’后的值前面需空一个空格
  • 换行主要使用 | 和 > ,|保留行尾换行符,>将行尾换行符替换成空格。
  • 保留字符末尾的换行使用+,删除字符末尾的换行使用-,一般用于与|和>组合使用
w: >- Hello World # 变为 {'w': 'Hello World'}
  • yaml若包含多个文档,则使用三条横杆---”分隔符分隔

3|0对象

# define1 key: child-key: value child-key2: value2 # define 2 ? - complexkey1 - complexkey2 : - complexvalue1 - complexvalue2

4|0数组

# define1 - - A - B - C # define2 companies: - id: 1 name: company1 price: 200W - id: 2 name: company2 price: 500W #define3 -flow companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}] #define4 --混合结构 { languages: [ 'Ruby', 'Perl', 'Python'], websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org' } }

5|0纯量

boolean: - TRUE #true,True都可以 - FALSE #false,False都可以 float: - 3.14 - 6.8523015e+5 #可以使用科学计数法 int: - 123 - 0b1010_0111_0100_1010_1110 #二进制表示 null: nodeName: 'node' parent: ~ #使用~表示null string: - 哈哈 - 'Hello world' #可以使用双引号或者单引号包裹特殊字符 - newline newline2 #字符串可以拆成多行,每一行会被转化成一个空格 date: - 2018-02-17 #日期必须使用ISO 8601格式,即yyyy-MM-dd datetime: - 2018-02-17T15:02:31+08:00 #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区

5|1强制类型转换

key: !!类型名 value # 强制将数据类型1转换成字符类型 number: !!str 1

6|0引用

# define1 defaults: &defaults adapter: postgres host: localhost development: database: myapp_development <<: *defaults test: database: myapp_test <<: *defaults # define2 - &showell Steve - Clark - Brian - Oren - *showell

7|0在py里的yaml

import yaml data = { "Person": { "name": "John", "age": 30, "address": { "street": "123 Main St", "city": "Anytown", "state": "CA" } } } # 将data变量存储的数据写入YAML文件 with open(file="example.yaml", mode="w") as f: yaml.dump(data, f) # 读取yaml文件中的数据 with open(file='test_keyword.yaml',mode='r',encoding='utf-8') as f: data = yaml.safe_load(f)

__EOF__

本文作者InsiApple
本文链接https://www.cnblogs.com/InsiApple/p/17884765.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   InsiApple  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示