Python中yaml数据格式的使用

最近在看代码时发现有人用Yaml —— Yet Another Markup Language :另一种标记语言。编程免不了要写配置文件,怎么写配置也是一门学问。YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。
YAML在python语言中有PyYAML安装包。YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。yaml是一种比xml和json更轻的文件格式,也更简单更强大,它可以通过缩进来表示结构,听着就和Python很配对不对?

PyYaml

PyYaml是Python的一个专门针对yaml文件操作的模块,使用起来非常简单

  • 安装 pip install pyyaml。或者到下载相应版本的包,人工安装。
  • 使用:使用起来非常简单,就像json、pickle一样,load、dump就足够我们使用了。
    • load()
    import yaml
     
    yaml_str = """
    name: 灰蓝
    age: 0
    job: Tester
    """
     
    y = yaml.load(yaml_str)
    print y
    
    结果:{'job': 'Tester', 'age': 0, 'name': u'\u7070\u84dd'}
    • dump()
    import yaml
     
    python_obj = {
         "name": u"灰蓝",
                  "age": 0,
                  "job": "Tester"
                  }
     
    y = yaml.dump(python_obj, default_flow_style=False)
    print y
    
    输出结果:
    age: 0
    job: Tester
    name: "\u7070\u84DD"
    
    上面只是简单的两个应用,还有 load_all()、dump_all() 等,我们一般用这四个足够了,另外两个下面会讲到,其他方法可以自己看API。
yaml语法

https://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
有了上面的基础,接下来我们看看yaml的语法,首先我们准备下测试语法的环境:

  • 创建 test.yaml 文件,我们练习语法就在这里

  • 创建 testyaml.py 文件,用来查看Python执行后的效果,其中内容如下:

# -*- coding: utf-8 -*-
import yaml
 
y = yaml.load(file('test.yaml', 'r'))
print y

1. 基本规则
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左对齐即可
  • # 表示注释,从它开始到行尾都被忽略
2. yaml转字典

yaml中支持映射或字典的表示,如下:
在test.yaml文件中:


                
  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Pythonyaml文件格式是一种用于序列化和反序列化数据的文件格式。YAML是一种人类可读的数据序列化格式,它使用简洁的语法来表示数据结构。YAML文件可以包含各种数据类型,包括字符串、数字、布尔值、列表和字典等。在Python,可以使用yaml模块来读取和保存yaml文件。通过导入yaml模块,可以使用官方的导入方法来兼容Windows和Linux平台。使用yaml模块的load函数可以读取yaml文件的内容,并将其转换为Python对象。例如,可以使用以下代码读取一个yaml文件并打印其内容: ```python import yaml with open("test.yaml", "r") as yaml_file: data = yaml.load(yaml_file) print("data_type:", type(data)) print("data_content:\n", data) ``` 这段代码使用yaml模块的load函数来读取test.yaml文件的内容,并将其转换为Python对象。然后,可以通过打印data的类型和内容来查看读取到的数据。 #### 引用[.reference_title] - *1* [yaml——python数据序列化文件格式解析包的介绍和使用](https://blog.csdn.net/ZH13114130815/article/details/126930216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python基础——python解析yaml类型文件](https://blog.csdn.net/weixin_54696666/article/details/115034027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值