首页 > 编程语言 >python扩展库之PyYAML

python扩展库之PyYAML

时间:2023-08-01 11:44:14浏览次数:37  
标签:PyYAML 数组 python price 扩展 YAML key id name

1. yaml详解

YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

1.1 YAML基本语法规则

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释

1.2 YAML数据类型

YAML 支持以下几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

1.2.1 YAML 对象

对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。

也可以使用 key:{key1: value1, key2: value2, ...}

还可以使用缩进表示层级关系;

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

较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key,配合一个冒号加一个空格代表一个 value

?  
    - complexkey1
    - complexkey2
:
    - complexvalue1
    - complexvalue2

意思即对象的属性是一个数组 [complexkey1,complexkey2],对应的值也是一个数组 [complexvalue1,complexvalue2]

1.2.2 YAML数组

以 - 开头的行表示构成一个数组,- 后必须有空格做间隔:

- A
- B
- C

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

key: [value1, value2, ...]

一个相对复杂的例子:

companies:
    -
        id: 1
        name: company1
        price: 200W
    -
        id: 2
        name: company2
        price: 500W
View Code

意思是 companies 属性是一个数组,每一个数组元素又是由 id、name、price 三个属性构成。

数组也可以使用流式(flow)的方式表示:

companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}]

 

 

 

 

 

 

 

 

 

 

》》》》未完待续

标签:PyYAML,数组,python,price,扩展,YAML,key,id,name
From: https://www.cnblogs.com/wuxunyan/p/17596060.html

相关文章

  • CentOS7创建Python虚拟环境
    为python3创建软连接:ln-s/usr/local/anaconda3/bin/python/usr/bin/python3ln-s/usr/local/anaconda3/bin/pip/usr/bin/pip3查看版本:[root@centos-base~]#python3-VPython3.7.0[root@centos-base~]#pip3-Vpip10.0.1from/usr/local/anaconda3/lib/python......
  • python教程 入门学习笔记 第3天 编程基础常识 代码注释 变量与常量
    编程基础常识一、注释1、对代码的说明与解释,它不会被编译执行,也不会显示在编译结果中2、注释分为:单行注释和多行注释3、用#号开始,例如:#这是我的第一个python程序4、注释可以写在单独一行,也可以写在一句代码后面5、不想执行编译,又不能删除的代码,可以先用#注释掉,代码批量注释......
  • python解析swagger文档数据
    众所周知swagger文档存储在api-docs接口中可以通过http获取接口的响应或者直接copyjson的响应到文本中,最终得到的数据都是data处理逻辑如下:withopen("1.txt",'r',encoding='utf8')asf:data=f.read()data=json.loads(data)basePath=data['basePath']......
  • python第二天
    1、写作业第一天学习的作业#作业1.1n=1whilen<11:print(n)ifn==6:n=n+2else:n=n+1#1-100求奇数n=1whilen<101:temp=n%2iftemp==0:passelse:print(n)n=n+1#......
  • Python-推导式和生成器表达式
    推导式利用[]或者{}可以定义列表推导式、集合/字典推导式,推导式的结果就是相应的列表,字典/集合数据类型。注意是没有元组推导式的,因为圆括号()被用来作为生成器表达式语法了。列表推导式ListComprehension用方括号[]包含内容,里面利用for[if]循环和相应的函数生......
  • 【Python】calendar_标准库的日历模块
    日历模块calendar.calendar(year,c,w,l)c:每月间隔距离w:每日宽度间隔l:每星期行数打印年日历#coding:utf-8importcalendarfromloguruimportloggeraslogsif__name__=="__main__":"""Run""""""打印年日历......
  • ...扩展运算符
     目录前言导语 代码部分 运行结果前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语歌谣歌谣......
  • python发送消息到Teams以及阿里云的上传与删除
    1importurllib2importtime3importoss24importos5importrandom6frompathlibimportPath7importrequests8importdatetime9fromdecoupleimportconfig1011fromurllib.parseimportunquote121314#......
  • 009 python socket UDP服务端程序,在pycharm正常运行,生成的exe运行有时候接收不到数据,
    写了一个简单的socket服务端程序,在pycharm中正常,生成exe后运行,有时候接收不到数据。经过半天折腾,发现,只要按一下回车,程序又能正常运行了。最终发现,是因为控制台的快速编辑功能打开导致程序假死。在控制台程序的菜单栏右键点击--->默认值--->去掉“快速编辑模式”和“插入模式”......
  • Python高级过滤器:掌握filter函数从入门到精通
    简介在Python中,filter()是一个非常有用的内置函数,它能够根据指定的函数来筛选出可迭代对象中满足条件的元素,返回一个迭代器。filter()函数的使用能够简化代码,并提高程序的可读性。本文将从入门到精通,全面介绍filter()函数的用法和相关知识点。1.filter()函数的基本用法filter(......