yaml格式介绍

本文详细介绍了 YAML,一种简洁的非标记语言,用于数据序列化。YAML 支持对象、数组和纯量等数据类型,通过缩进来表示层级关系。对象以键值对形式存在,数组以 '-' 开头的行表示。此外,YAML 还支持复合结构,如数组和对象的组合,并提供了引用功能。文章还涵盖了 YAML 中的布尔值、浮点数、整数、日期和时间等纯量数据类型的表示方法。
摘要由CSDN通过智能技术生成

1.yaml介绍

​ yaml是一种简洁的非标记语言,以数据为中心,使用空白,缩进,分行组织数据,

基本语法
  1. 大小写敏感

  2. 使用缩进表示层级关系,不允许使用Tab,只能使用空格

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

  4. ‘#’表示注释

    数据类型
    1. 对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)
    2. 数组:一组按次序排列的值,又称为序列(sequence)/列表(list),数组对象“-” 后面也要加一个空格
    3. 纯量(scalars):单个的,不可再分的值
    YAML对象
    1. 对象键值对使用冒号结构表示key:value,冒号后面要加一个空格

    2. 也可以使用key: {key: value1,key2: value2,…}(类似python字典嵌套)

    3. 也可以使用缩进表示层级关系

      key:
          child-key:value
          child-key2:value2
      

    较为复杂的数据格式,也可以使用问号加空格来表示复杂的key,配合一个冒号加空格表示一个value

    ? 
        - key1
        - key2
    : 
    	- value
    	- value2
    

    意思是:对象的属性是一个数组[key1,key2],对应的值也是[value,value2]

    YAML数组

    ​ 以-开头的行表示构成一个数组

    - a
    - b
    - c
    

    yaml支持多维数组,可以使用行内表示

    key: [value,value2,...]
    

    数据结构的子成员是一个数组,则可以在该项下面缩进一个空格.

    - 
     - a
     - b
     - c
    

    例子:a的属性是一个数组,每一个数据元素都是由id,name,price组成

    a: 
       - 
         id: 1
         name: 2
         price: 3
       - 
       	 id: 2
       	 name: 3
       	 price: 4
    # 也可以流式的表示为
    a: [{id: 1,name: 2,price: 3},{id: 2,name: 3,price: 4}]
    
    复合结构

    数组和对象可以构成复合结构

    languages: 
          - Rudy
          - Perl
          - Python
    websites: 
          YAML: yaml.org
          Ruby: ruby-lang.org
          Python: python.org
          Perl: use.perl.org
    

    转换为json格式为

    {
    languages:['Rudy','Perl','Python'],
    websites:{
    	  YAML: 'yaml.org',
          Ruby: 'ruby-lang.org',
          Python: 'python.org',
          Perl: 'use.perl.org
    }
    }
    
    纯量

    ​ 纯量是最基本的,不可再分的值包括:字符串,布尔值,整数,浮点数,Null,时间,日期.

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

    &锚点和*别名,可以用来引用

    defaults: &defaults
        adapter: postgres
        host: localhost
     developemt: 
     database: myapp_development
     <<: *defaults
     
    

    &用来建立锚点,<<表示合并到当前数据,*用来引用锚点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python的yaml文件格式是一种用于序列化和反序列化数据的文件格式YAML是一种人类可读的数据序列化格式,它使用简洁的语法来表示数据结构。YAML文件可以包含各种数据类型,包括字符串、数字、布尔值、列表字典等。在Python中,可以使用yaml模块来读取和保存yaml文件。通过导入yaml模块,可以使用官方的导入方法来兼容Windows和Linux平台。使用yaml模块的load函数可以读取yaml文件的内容,并将其转换为Python对象。例如,可以使用以下代码读取一个yaml文件并打印其内容: ```python import yaml with open("test.yaml", "r") as yaml_file: data = yaml.load(yaml_file) print("data_type:", type(data)) print("data_content:\n", data) ``` 这段代码使用了yaml模块的load函数来读取test.yaml文件的内容,并将其转换为Python对象。然后,可以通过打印data的类型和内容来查看读取到的数据。 #### 引用[.reference_title] - *1* [yaml——python数据序列化文件格式解析包的介绍和使用](https://blog.csdn.net/ZH13114130815/article/details/126930216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python基础——python解析yaml类型文件](https://blog.csdn.net/weixin_54696666/article/details/115034027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值