zoukankan      html  css  js  c++  java
  • Python Day13(yaml)

    1.什么是YAML?
    YAML是一个类似 XML、JSON 的标记性语言。YAML 强调以数据为中心,并不是以标识语言为重点。因而 YAML 本身的定义比较简单,号称“一种人性化的数据格式语言”。
     
    2.语法规则
    • 大小写敏感
    • 使用缩进表示层级关系
    • 缩进时不允许使用Tab键,只允许使用空格
    • 以#号作为注释符
     
    3.数据结构
    • 列表,数组(一串类型相同或者不同的组合)
    • 纯量(类似于原子性,不可再分)
    • 对象(键值对的组合,一对一的特性)
     
    4.列表、数组
    - 数组1
    - 数组2
    - 数组3
    - 数组4
    - 数组5
    5.原子量
    也即是纯量,不能再细分的数据结构。类比其他的编程语言,YAML也充分地考虑到了这一点。
    • 数值型: 直接书写即可。不区分整型还是浮点型。

    • 字符串: 字符串可以加引号,也可以不加。还有相关于换行什么的更多特殊的用法,这里强烈建议阅读以下阮一峰老师的这篇文章: 
      http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt

      • 单引号内会自动的转义特殊字符,对单引号转义是使用两个单引号,其表示一个原生的单引号。
      • 双引号内保持原字符不变。
    • 日期,时间:

      • 时间: ISO8601 格式。如2001-12-14t21:59:43.10-05:00
      • 日期: 采用复合 iso8601 格式的年、月、日表示。如1970-01-01
    • 关于强制类型转换: 可以通过两个英文感叹号+新的数据类型的方式来进行强制的类型转换。
    6.yaml简单操作
     
    test.yaml
     1 bind1:
     2   hostname: server1
     3   remote_users:
     4     - user1:
     5       username: root
     6       auth_type: ssh-key
     7       #password: 123
     8     - user2:
     9       username: alex
    10       auth_type: ssh-passwd
    11       password: alex3714
    12   groups:
    13     - bj_group
    14   user_profiles:
    15     - alex
    16 
    17 bind2:
    18   hostname: server2
    19   remote_users:
    20     - user1:
    21       username: alex
    22       auth_type: ssh-passwd
    23       password: alex3714
    24   groups:
    25     - bj_group
    26     - sh_group
    27 
    28   user_profiles:
    29     - rain

    load

     1 import yaml
     2 f = open("test.yaml", "r")
     3 y = yaml.load(f)
     4 for k, v in y.items():
     5     print(k, v)
     6 
     7 """
     8 bind2 {'hostname': 'server2', 'groups': ['bj_group', 'sh_group'], 'user_profiles': ['rain'], 'remote_users': [{'user1': None, 'password': 'alex3714', 'auth_type': 'ssh-passwd', 'username': 'alex'}]}
     9 bind1 {'hostname': 'server1', 'groups': ['bj_group'], 'user_profiles': ['alex'], 'remote_users': [{'user1': None, 'auth_type': 'ssh-key', 'username': 'root'}, {'user2': None, 'auth_type': 'ssh-passwd', 'password': 'alex3714', 'username': 'alex'}]}
    10 """
  • 相关阅读:
    Unity NGUI 2D场景添加按钮
    EaseType缓动函数
    在没有网络的情况下用安卓手机和数据线让台式电脑上网
    面向对象编程
    static与C#中的static
    C#基础
    iSensor APP 之 摄像头调试 OV5642
    iSensor APP 之 摄像头调试 OV9655
    USB3.0之高速视频传输测试 双目相机(mt9p031、mt9m001)带宽高达300M测试 配合isensor测试 500万像素15fps
    模拟摄像头解码模块最新测试 TVP5150模块 FPGA+SDRAM+TVP5150+VGA 实现PAL AV输入 VGA视频输出
  • 原文地址:https://www.cnblogs.com/breakering/p/7128221.html
Copyright © 2011-2022 走看看