zoukankan      html  css  js  c++  java
  • YAML常用的语法

    YAML的基本规则

    • 大小写敏感
    • 使用缩进表示层级关系
    • 缩进时不允许使用Tab,只允许使用空格
    • 缩进的空格数目不重要,只要相同层级的元素左对齐即可
    • # 表示注释,从它开始到行尾都被忽略

    YAML的基本数据类型

    • 字符串:str: "Hello World!",如果字符串没有空格或特殊字符,不需要加引号,但如果其中有空格或特殊字符,则需要加引号
    • 整型:int: 110
    • 浮点型:float: 3.141
    • 布尔型:boolean: true
    • null:None: null
    • 时间:time: 2016-09-22t11:43:30.20+08:00
    • 日期:date: 2016-09-22

    YAML字典格式

    # yaml定义数据在Python里会是dict类型
    name: 灰蓝
    age: 0
    job: Tester

    输出结果:{'job': 'Tester', 'age': 0, 'name': u'u7070u84dd'} 

    YAML转列表

    # 定义数据读到Python里会是list
    - 灰蓝
    - 0
    - Tester

    输出结果:[u'u7070u84dd', 0, 'Tester'] 

    YAML转列表、字典复合数据

    # 定义读到Python里是个list里包含dict
      - name: 灰蓝
        age: 0
        job: Tester
      - name: James
        age: 30

    输出结果:[{'job': 'Tester', 'age': 0, 'name': u'u7070u84dd'}, {'age': 30, 'name':'James'}]

    YAML的&、*引用与被引用

    # 定义变量并引用
    name: &name Tom
    tester: *name

    输出结果:{'name': 'Tom', 'tester': 'Tom'}

    YAML的强制转换

    # yaml是可以进行强制转换的,用!!实现
    str: !!str 3.14
    int: !!int "123"

    输出结果:{'int': 123, 'str': '3.14'} 

    YAML分段

    # 在同一个yaml文件中,可以用---来分段定义数据
    ---
    name: James
    age: 20
    ---
    name: Lily
    age: 19
    # python中使用yaml.load_all()方法生成一个迭代器,然后通过for循环得到结果
    import yaml
    ys = yaml.load_all(file('test.yaml', 'r'))
    for y in ys:
      print y

    输出结果:

    {'age': 20, 'name': 'James'}
    {'age': 19, 'name': 'Lily'}

  • 相关阅读:
    面试题:链表倒数第k个节点
    面试题:重建二叉树
    面试题:从尾到头打印链表
    面试题:第一个出现的字符位置
    面试题:调整数组顺序
    面试题:有限制条件的求和
    面试题:Fibonacci数列
    面试题:旋转数组的最小数字
    面试题:替换空格
    EndNote8破解版下载安装
  • 原文地址:https://www.cnblogs.com/jason2018524/p/13498613.html
Copyright © 2011-2022 走看看