python解析yaml文件

yaml简介

YAML是一个可读性高,用来表达数据序列的格式。YAML引用了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式中获得灵感。目前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印除错内容、文件大纲。尽管它比较适合用来表达层次结构式(hierarchical model)的数据结构,不过也有精致的语法可以表示关系性(relational model)的数据。由于YAML使用空白字符和分行来分隔数据,使得它特别适合用grep/Python/Perl/Ruby操作。其让人最容易上手的特色是巧妙避开各种封闭符号,如:引号、各种括号等,这些符号在嵌套结构时会变得复杂而难以辨认。

yaml语法

关于yaml的具体语法,可以参考这篇博客http://www.ruanyifeng.com/blog/2016/07/yaml.html,这里不再赘述

python解析yaml文件

下面来看两个例子看python如何load和dump yaml文件。

1. 解析yaml文件

假设我们有如下yaml文件

# test.yaml
age: 37
spouse:
  name: Jane Smith
  age: 25
children:
  - name: Jimmy Smith
    age: 15
  - name1: Jenny Smith
    age1: 12

可以使用yaml.load将文件解析成一个字典

import yaml

with open('test.yaml','r') as f:
    data = yaml.load(f)

print(type(data))
print(data)

'''
输出结果
<type 'dict'>
{'age': 37, 'spouse': {'age': 25, 'name': 'Jane Smith'}, 'children': [{'age': 15, 'name': 'Jimmy Smith'}, {'age1': 12, 'name1': 'Jenny Smith'}]}

'''
2. 将字典写入yaml文件中
import yaml

data = {'name':'johnson', 'age':23,
        'spouse':{'name':'Hallie', 'age':23},
        'children':[{'name':'Jack', 'age':2}, {'name':'Linda', 'age':2}]}

with open('test2.yaml','w') as f:
    f.write(yaml.dump(data))
    print yaml.dump(data)
'''
输出结果:
age: 23
children:
- {age: 2, name: Jack}
- {age: 2, name: Linda}
name: johnson
spouse: {age: 23, name: Hallie}
'''

得到的yaml文件如下所示:

# test2.yaml
age: 23
children:
- {age: 2, name: Jack}
- {age: 2, name: Linda}
name: johnson
spouse: {age: 23, name: Hallie}
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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值