当前位置: 首页 > article >正文

YAML文件入门

YAML文件入门

文章目录

  • YAML文件入门
    • 1. 基本YAML语法——数组list
    • 2. 基本YAML语法——字典dict
    • 3. 一个简单示例

​ 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'}}]}

http://www.kler.cn/a/160795.html

相关文章:

  • Nginx中实现流量控制(限制给定时间内HTTP请求的数量)示例
  • [项目代码] YOLOv5 铁路工人安全帽安全背心识别 [目标检测]
  • 力扣 653. 两数之和 IV 二叉树/binary-tree two-sum IV
  • 鸿蒙华为商城APP案例
  • shodan7(泷羽sec)
  • 《重学Java设计模式》之 原型模式
  • 计算机网络体系的形成
  • 【问题思考】泰勒公式证明题如何选展开点?【对称美】
  • idea新建spring boot starter
  • 近期复习三
  • 【7】PyQt布局layout
  • 低多边形建筑3D模型纹理贴图
  • 安装和初始化 VyOS 虚拟机
  • VUE2+THREE.JS 模型上方显示信息框/标签(CSS3DSprite精灵模型)
  • c++遍历算法的transform算法
  • Python-上下文管理器
  • Matlab 在一个文件中调用另一个文件中的函数
  • CMakeLists中下载github仓库代码和设置代理
  • 【华为OD题库-082】TLV解析II-Java
  • 备考六级day1
  • mybatis的分页插件
  • SCI论文——respectively用法
  • Vue3整合Element Plus过程
  • 创业6个月裤衩都赔掉了;2023生成式AI年度大事表;AI工程师的自我修养;LLM开发者成长计划;OpenAI LLM入门课程 | ShowMeAI日报
  • Stable Diffusion Automatic1111 Web UI和dreambooth扩展的安装教程
  • 艾泊宇产品战略:低价的战争:阿里、京东、拼多多的终局推演