Yaml数据存储文件

Yaml数据存储文件

YAML 是一种所有编程语言可用的友好的数据序列化标准,语法和其他高阶语言类似,并且可以简单表达清单、散列表,标量等资料形态.
  • 语法规则
    1.大小写敏感
    2.使用缩进表示层级关系
    3.缩进时不允许使用Tab键,只允许使用空格。
    4.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

  • 支持的数据结构
    1.对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
    2.数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
    3.纯量(scalars):单个的、不可再分的值
  • 1.对象

    • 值为字符
        data.yaml
         animal: pets
    
        转换为python代码
         {'animal': 'pets'}
    
    • 值为字典
        data.yaml
         animal: {"ke1":"pets","key2":"app"} # python字典
    
        转换为python代码
         {animal: {"ke1":"pets","key2":"app"}} # 嵌套字典结构
    
  • 2.数组

    • 方式一
        data.yaml
         animal: 
           - data1
           - data2
        转换为python代码
         {'animal': ['data1', 'data2']}
    
    

  - 方式二
  data.yaml
   animal: ['data1', 'data2'] # python列表

  转换为python代码
   {'animal': ['data1', 'data2']} # 字典嵌套列表

- 纯量
包含:字符串,布尔值,整数,浮点数,Null,日期
字符串
data.yaml
 value: "hello"

转换为python代码
 {"value":"hello"}
布尔值
data.yaml
 value1: true
 value2: false

转换为python代码
 {'value1': True, 'value2': False}
整数,浮点数
data.yaml
 value1: 12
 value2: 12.102

转换为python代码
 {'value1': 12, 'value2': 12.102}
空(Null)
data.yaml
 value1: ~ # ~ 表示为空
转换为python代码
 {'value1': None}
日期
data.yaml
 value1: 2017-10-11 15:12:12
转换为python代码
 {'languages': {'value1': datetime.datetime(2017, 10, 11, 15, 12, 12)}}

- 锚点&和引用*
锚点:标注一个内容,锚点名称自定义
引用:使用被标注的内容<<: *锚点名
data.yaml
 data: &imp
    value: 456
 name:
  value1: 123
  <<: *imp # "<<:" 合并到当前位置,"*imp" 引用锚点imp
转换为python代码
 {'data': {'value': 456}, 'name': {'value': 456, 'value1': 123}}
 
发布了240 篇原创文章 · 获赞 77 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/dpl12/article/details/104171125
今日推荐