【Python基础】Python 读取YML文件配置

13 篇文章 1 订阅
2 篇文章 0 订阅

YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便

YML文件的语法及结构

语法
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样
YAML 支持的数据结构有三种:
  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

  • 纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期

  • dict类型数据

# dict类型
username: admin
password: 123456
输出结果:{'username': 'admin', 'password': 123456}
  • dict类型嵌套dict类型
# dict类型
login:
  username: admin
  password: 123456
logins:
  username: admin
  password: 123456
输出:{'login': {'username': 'admin', 'password': 123456}, 'logins': {'username': 'admin', 'password': 123456}}
  • list类型,前面加上‘-’符号,或者多个’–’
# list类型
username:
	- admin
password: 
	- 123456
  • 纯量文本
# 布尔值用true和false表示
isSet: true #{'isSet': True}
isSet1: false #{'isSet1': False}
# null用~表示
parent: ~ #{'parent': None}
# 时间采用 ISO8601 格式。
time1: 2020-08-14t21:59:43.10-05:00 #{'time1': datetime.datetime(2020, 08, 15, 2, 59, 43, 100000)}
# 日期采用复合 iso8601 格式的年、月、日表示。
date: 2020-07-31 #{'date': datetime.date(2020, 7, 31)}
# YAML 允许使用两个感叹号,强制转换数据类型。
int_to_str: !!str 123 #{'bool_to_str': 'true'}
bool_to_str: !!str true #{'bool_to_str': 'true'}
  • list嵌套dict
- username: admin
  password: 123456
- username: root
  password: 654321
输出:[{'username': 'admin', 'password': 123456}, {'username': 'root', 'password': 654321}]
  • dict 嵌套list
group1:
  - admin
  - 123456
group2:
  - root
  - 654321
 输出结果:{'group1': ['admin', 123456], 'group2': ['root', 654321]}

Python读取YML文件

import yaml
with open('Cps.yaml', 'r', encoding='utf-8') as f:
file_content = f.read()
content = yaml.load(file_content, yaml.FullLoader)
print(content)
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值