Yaml文件读(重点)

https://www.likecs.com/show-307121535.html
读取数据使用load函数
读取多组数据使用,yaml.load_all()方法,返回结果为一个生成器,需要使用for循环语句获取每组数据

result = yaml.load(f.read(), Loader=yaml.FullLoader)
Loader=yaml.FullLoader参数不写的话对结果不会有影响,但运行时会出现警告信息。

假设有mydata.yaml文件,内容如下:
#正常数据
ip: 127.0.0.1
port: 3306
#嵌套数据
data:
  user: root
  password: 123456
  userdb: ~
#列表数据
data2:
  - maker
  - 28
  - 98.9
#元祖数据
地区: !!python/tuple
- 深圳
- 上海

读取代码如下:
import yaml

with open('./mydata.yaml','r',encoding='utf-8') as f:
    res = yaml.load(f.read(), Loader=yaml.FullLoader)

print(res)
print(type(res))

结果如下:
{'ip': '127.0.0.1', 'port': 3306, 'data': {'user': 'root', 'password': 123456, 'userdb': None}, 'data2': ['maker', 28, 98.9], '地区': ('深圳', '上海')}
<class 'dict'>


多组数据读取
mydatas.yaml内容如下:
data:
- ip: 127.0.0.1
  port: 3300
- ip: 192.168.33.44
  port: 2789
- ip: 10.25.33.24
  port: 2020
id: 1
环境: 开发
---
data:
- ip: 127.0.0.1
  port: 3300
- ip: 192.168.33.45
  port: 2789
- ip: 10.25.33.25
  port: 2020
id: 2
环境: 测试

代码如下:
import yaml

with open('./mydatas.yaml', 'r', encoding='utf-8') as f:
    res = yaml.load_all(f.read(), Loader=yaml.FullLoader)
    print(res)
    for i in res:
        print(i)
        
结果如下:
<generator object load_all at 0x000002615CACF9E0>
{'data': [{'ip': '127.0.0.1', 'port': 3300}, {'ip': '192.168.33.44', 'port': 2789}, {'ip': '10.25.33.24', 'port': 2020}], 'id': 1, '环境': '开发'}
{'data': [{'ip': '127.0.0.1', 'port': 3300}, {'ip': '192.168.33.45', 'port': 2789}, {'ip': '10.25.33.25', 'port': 2020}], 'id': 2, '环境': '测试'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渊途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值