文章目录
JSON格式解析
json是什么
- JSON是javeScript对象表示法,它是一种基于文本(基于字符串)独立于语言的的轻量级数据交换格式
- JSON中的分隔符限于单引号“ ‘ ” ,小括号“()”、中括号“ [ ]"、大括号” { }“、冒号” : “、和逗号” ,“
JSON特性
- JSON是纯文本
- JSON具有”自我描述性“(人类可读)
- JSON具有层级结构(值中存在值)
- JSON可通过JaveScript进行解析
JSON语法规则
-
数据在名称/值对中 key:value键值对
-
数据由逗号分隔 [a,b,c,d]
-
大括号保存对象 {key:value}
-
中括号保存数组
-
JSON数据的书写格式是:名称/值对
名称/值对 包括字段名称(在双括号中),后面写一个冒号,然后是值,例:
”诗仙“ : ”李白“ 基本结构
嵌套结构
key : [“a”,“b”,“123”]
[“a”,”b“,”xx“ :”123“]
[“a”,“b”,[1,2,3] ]
key: {k1:v1}
结构:括号对齐
YAML简介
YAML是什么
- 是一个可读性高,用来表达数据序列的格式
- YAML(YAML Ain’t Markup Language)
- YAML参考了多种语言,如C语言、python、Perl等,并从XML、电子邮件的数据格式中获得灵感,Clark Evans在2001年首次发表了这种语言,目前已有数种编程语言或脚本支持这种语言
YAML基础语法
-
YAML的结构通过空格来展示
-
数组通过” - “来表示
-
键值对使用” :“(冒号空格)来表示
-
YAML使用一个固定的缩进风格表示数据层结构关系
-
一般每个缩进级别由两个以上空格组成
-
#表示注释
-
注意
不要使用tab,缩进是最容易出错的地方
同一层级必须对齐
YAML的键值表示方法
-
采用冒号分隔
-
:后面必须有一个空格
-
YAML键值对例子
”诗仙“ : “李白” 或
’李白‘:
”诗仙“
复杂YAML的键值对嵌套
YAML数组表示方法
高级复合表达式
Jinja2模板
Jinja2是什么
- Jinja2是基于python的模板引擎,包含变量和表达式两部分。两者在模板求值时会被替换为值,模板中还有标签,控制模板的逻辑
为什么要学习Jinja2模板
- 因为playbook的模板使用python的Jinja2模块来处理
Jinja2模板的基本用法
-
模板的表达式都是包含在分隔符” {{ }}“内的
-
控制语句都是包含在分隔符” {% %}"内的
-
模板支持注释,都是包含在分隔符“ {# #}"内,支持块注释
-
调用变量
{{varname}}
-
计算
{{2+3}}
-
判断
{{1 in [1,2,3]}}
Jinja2模板控制语句
判断
循环
Jinja2过滤器
Jinja2过滤器
-
变量可是通过过滤器修改,过滤器与变量用管道符号(|)分割,也可以用圆括号传递可选参数,多个过滤器可以链式调用,前一个过滤器的输出会被作为后一个过滤器的输入
-
例:
加密一个字符串:{{ ‘astr’ | password_hash(‘sha512’)}}
过滤器这里不再一一列举,需要可以查询在线文档:http://docs.jinkan.org/docs/jinja2/templates.html