基于python使用YAML保存、读取数据

YAML 与JSON类似,是专门用来写配置文件的语言,非常简洁和强大,但是比 JSON 格式方便,JSON能做的YAML都能做!

安装

pip install pyyaml

演示代码

百度网盘地址
密码:xkrm

语法

  • 区分大小写(同python)
  • 使用缩进表示层级关系(同python)
  • 用空格缩进,注意同级数据左侧对齐即可
  • # 和python一样注释(只有单行注释)

支持数据结构

支持结构详解
对象键值对的集
数组list
变量str、bool、int、float、Null、time、date

对象

键值对,使用冒号表示

dict1: { name: Steve, foo: bar } 
# {'dict1': {'foo': 'bar', 'name': 'Steve'}}

数组

两种写法

# 1、 {'数组1': ['Cat', 'Dog']}
数组1: [Cat, Dog]


#2、 {'数组2': ['Cat', 'Dog', 'Goldfish']}
数组2:
 - Cat
 - Dog
 - Goldfish

字符串

注意事项较多

#1、字符串默认用引号
str_普通: 字符串

#2、空格或特殊字符,需要放在引号之中。
str_包含特殊符号: '*字符串'

#3、双引号不会对特殊字符转义。
str_单引号: '内容\n字符串'
str_双引号: "content\n string"

#4、单引号之中如果还有单引号,必须连续使用两个单引号转义。
str_引号转义: 'labor''s day'

#5、从第二行开始,必须有一个单空格缩进。换行符会被转为空格
str_多行: 这是一段
  多行
  字符串
  
#6、多行字符串可以使用|保留换行符
str_保留换行符: |
  Foo
  Bar
  
#7、+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。
s1: |
  Foo4
s2: |+
  Foo5
s3: |-
  Foo6

纯量

#1、数值
number: 12.30 #{'number': 12.3}

#2、布尔
isSet: true #{'isSet': True}
isSet1: false #{'isSet1': False}

# 3、null
parent: ~   #{'parent': None}

#4、时间
time1: 2001-12-14t21:59:43.10-05:00  #{'time1': datetime.datetime(2001, 12, 15, 2, 59, 43, 100000)}

##5、日期
date: 2017-07-31  #{'date': datetime.date(2017, 7, 31)}

#6、强转为str
int_to_str: !!str 123  #{'bool_to_str': 'true'}
bool_to_str: !!str true #{'bool_to_str': 'true'}

组合运用

对象和数组可以结合使

数组:
 - Ruby
 - Perl
 - Python
websites:
 YAML: yaml.org
 Ruby: ruby-lang.org
 Python: python.org
 Perl: use.perl.org
#{'数组': ['Ruby', 'Perl', 'Python'], 'websites': {'Python': 'python.org', 'YAML': 'yaml.org', 'Ruby': 'ruby-lang.org', 'Perl': 'use.perl.org'}}

db:
    host: xxx
    port: 3306
    user: weibospider
    password: xxx
    db_name: weibo
    db_type: mysql

#{'db': {'host': 'xxx', 'db_name': 'weibo', 'user': 'weibospider', 'db_type': 'mysql', 'password': 'xxx', 'port': 3306}}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值