python基础:yaml文件处理

导语:今天学习下yaml文件的处理!

YAML(YAML Ain’t Markup Language)是一种简洁而强大的数据序列化格式,它常用于编写配置文件。

YAML安装

pip inastll pyyaml

YAML基础语法

字符串的表示

在YAML中,你可以用单引号、双引号或不加引号来表示字符串。这取决于你是否需要在字符串中使用特殊字符。

# YAML文件示例

name1: cuicui
name2: '崔崔'
name3: "xiaocui"

字典和列表

YAML中的字典以key: value的形式表示,而列表则是用减号加空格-来表示每个元素。子元素使用缩进表示层级关系。

# 字典和列表的YAML表示
person:
  name: cuicui
  age: 18
fruits:
  - apple
  - banana
  - orange
注意事项
  • 在YAML中,冒号后面一定要加空格,否则会报错。
  • YAML对大小写敏感,Namename会被视为不同的键。
  • 只允许使用空格进行缩进,不支持制表符\t

Python读取YAML文件

让我们通过一些简单的Python代码来读取YAML文件。

读取基本数据结构
# YAML文件-test03.yaml示例
name1: cuicui
name2: '崔崔'
name3: "xiaocui"
name4: cui\nCui
name5: '崔\n崔'
name6: "xiao\ncui"
information:
  age: 18
  hobby: '吃'
import yaml

# 打开并读取YAML文件
with open('test03.yaml', 'r') as f:
    data = yaml.safe_load(f)
    print(data)  # 打印整个数据结构
    print(data['name4'])  # 打印特定的键值
读取列表
# YAML文件-test04.yaml示例
- 10
- 11
- 102

代码如下:

import yaml

# 读取列表数据
with open('test04.yaml', 'r') as f:
    data = yaml.safe_load(f)
    print(data)  # 列表数据会被打印出来
读取文档中不同元素

YAML文件可以包含多个元素,使用---来分隔。

# YAML文件-test05.yaml示例

name6: "xiao\ncui"
information:
  age: 18
  hobby: '吃'
---
- 10
- 11
- 102

代码示例如下:

import yaml

# yaml文件中存在多个不同类型的元素时,不同元素使用--- 隔开
# 这里面使用safe_load_all() 方法,但是打印出来的是生成器(可迭代的对象)例如:<generator object load_all at 0x7fa334b0b430>
# 使用for循环进行迭代

with open('test05.yaml') as f:
    text = yaml.safe_load_all(f)
    for t in text:
        print(t)
        print(type(t))

YAML文件中的特殊规则

大小写敏感示例
# 大小写敏感示例
upper_case: Value
lower_case: value
使用缩进表示层级关系
# 层级关系示例
root:
  child:
    grandchild: value
变量处理

有时,YAML文件中会包含变量,我们可以使用环境变量或其他方法来替换这些变量。

# 假设YAML文件包含变量
# YAML文件-test06.yaml示例

url: &var https://blog.csdn.net
baseurl: *var
username: admin
password:
  - admin
  - 8982
  - *var

代码示例如下:

import yaml

with open('test06.yaml') as f:
    text = yaml.safe_load_all(f)
    for i in text:
        print(i)

总结

下次见,拜拜~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值