YAML文件入门

YAML文件入门

​ YAML是"Yet Another Markup Language"的缩写,意为仍是一种标记语言,YAML和其他高级语言非常相似,可以用于表示简单的列表list、字典dict等形式,YAML使用空白符号缩进和大量依赖于外观的特色,非常适合于编写配置文件,另外YAML文件的后缀可以为.yml.yaml

1. 基本YAML语法——数组list

-开头的行表示构成一个数组,使用#来表示注释

# record some languages
languagues:
 - Ruby
 - Python
 - C++
 - Java

将这个.yaml文件读出的效果如下

{'languagues': ['Ruby', 'Python', 'C++', 'Java']}

2. 基本YAML语法——字典dict

YAML以:来表示对象和其值,即key: value,并且需要注意的是冒号后面需要存在一个空格,还可以使用缩进来表示层级关系

languagues:
	Python: python.py
	C++: c++.c

将这个.yaml文件读出的效果如下

{'languagues': {'Python': 'python.py', 'C++': 'c++'}}

3. 一个简单示例

将这个YAML文件命名为runboob.yaml

#Comment: Student record
#Describes some characteristics and preferences
---
name: Martin D'vloper #key-value
age: 26
hobbies: 
  - painting #first list item
  - playing_music #second list item
  - cooking #third list item
programming_languages:
  java: Intermediate
  python: Advanced
  javascript: Beginner
favorite_food: 
  - vegetables: tomatoes 
  - fruits: 
      citrics: oranges 
      tropical: bananas
      nuts: peanuts
      sweets: raisins

使用python读取后,效果如下

import os
from typing import Dict, Any
import yaml

with open(os.path.join('.', 'runboob.yaml'), 'r', encoding='utf-8') as file:
    config: Dict[str, Any] = yaml.load(file, Loader=yaml.FullLoader)

print(config)
{'name': "Martin D'vloper",
 'age': 26,
 'hobbies': ['painting', 'playing_music', 'cooking'],
 'programming_languages': {'java': 'Intermediate',
  'python': 'Advanced',
  'javascript': 'Beginner'},
 'favorite_food': [{'vegetables': 'tomatoes'},
  {'fruits': {'citrics': 'oranges',
    'tropical': 'bananas',
    'nuts': 'peanuts',
    'sweets': 'raisins'}}]}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值