zoukankan      html  css  js  c++  java
  • yaml

    一、简介

    YAML是“yaml ain't Markuo Language”的缩写,即YAML是一种简洁的非标记语言,使用空白、缩进、分行组织语言,从而使数据更加简洁易读。

     YAML通常用来做配置文件。例如自动化测试中,测试用例使用yaml文件格式,会更方便灵活。

    二、基本规则

    1、大小写敏感

    2、使用缩进表示层级关系

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

    4、#表示单行注释

    5、字符串可以不用引号,也可以使用单引号或者双引号

    三、python中的使用

    python中安装pyyaml模块,来读取使用yaml格式文件

    yaml.load()方法:将一个yaml格式文档转换成python对象

    四、示例

    1、字典

    使用冒号,表示键值对;冒号后面必须要有空格,否则就不是键值对,而是字符串;相同缩进(左侧对齐)的键值对属于同一个字典。

    #使用冒号,表示键值对,冒号后面必须要有空格
    #同一缩进的所有键值对属于一个字典
    str1: xiaomei  #字符串可以不使用引号
    str2: 'xiaohua mei' #字符串中有空格,需要放在引号中
    str3: 'xiaomei
     haha' #单引号对特殊字符不转义
    str4: "xiaomei
     haha"  #双引号对特殊字符转义 
    str5: "my name's hanmeimei" #字符串中有单引号,可以使用双引号括起来
    str6: 'my name''s hanmeimei' #字符串中有单引号,也可以使用单引号转义
    str7: 'my name"s hanmeimei' #字符串中有双引号,可以使用单引号括起来
    str8: 这是一段
     多行字符串 #字符串可以多行,从第二行开始,必须有一个单空格缩进。换行会被转为空格

    在python中使用yaml模块,查看一下这个yaml文件

    import yaml
    f=open('login.yml',encoding='utf-8')
    res=yaml.load(f)   #将yaml格式文档转换成python对象
    print(res,'
    ')    #打印文件内容
    print(res.get('str3'),'
    ')  #打印str3的值
    print(res.get('str4')) #打印str4的值

    运行结果如下:

    {'str1': 'xiaomei', 'str2': 'xiaohua mei', 'str3': 'xiaomei\n haha', 'str4': 'xiaomei
     haha', 'str5': "my name's hanmeimei", 'str6': "my name's hanmeimei", 'str7': 'my name"s hanmeimei', 'str8': '这是一段 多行字符串'} 
    
    xiaomei
     haha 
    
    xiaomei
     haha

    2、list

    使用"-";"-"后面必须要有空格,否则就不是list,而是字符串;相同缩进(左侧对齐)的属于同一list。

    list的嵌套,通过缩进实现,当然,list和字典可以相互嵌套,也是通过缩进实现,如下:

    people:
     - name: 小明
       age: 16
     - name: 小花
       age: 17

    使用在python中使用yaml模块,查看一下这个文本,运行结果如下:

    {'people': [{'name': '小明', 'age': 16}, {'name': '小花', 'age': 17}]}
  • 相关阅读:
    POJ 3630 Phone List/POJ 1056 【字典树】
    HDU 1074 Doing Homework【状态压缩DP】
    POJ 1077 Eight【八数码问题】
    状态压缩 POJ 1185 炮兵阵地【状态压缩DP】
    POJ 1806 Manhattan 2025
    POJ 3667 Hotel【经典的线段树】
    状态压缩 POJ 3254 Corn Fields【dp 状态压缩】
    ZOJ 3468 Dice War【PD求概率】
    POJ 2479 Maximum sum【求两个不重叠的连续子串的最大和】
    POJ 3735 Training little cats【矩阵的快速求幂】
  • 原文地址:https://www.cnblogs.com/ruijie/p/9132071.html
Copyright © 2011-2022 走看看