一文搞懂Python读取yaml

本文详细介绍了Python如何使用yaml.safe_load方法读取yaml文件,并展示了数据的层次结构。通过代码示例和输出结果,解释了两者在存储和访问数据上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先看一下yaml和json文件的对比

 接着看一下Python读取yaml的代码示例

import yaml

data = yaml.safe_load(open("../testdata/data.yaml", encoding="utf8"))
print(data)
print("hero:",data['hero'])
print("hero_name:",data['hero_name'])
print("heros:",data['heros'])
print("hero_name_list:",data['hero_name_list'])

看一下执行代码后输出的结果

1 {'hero': {'name': '韩凯', 'age': 32}, 'hero_name': ['赵四', '王五', '马六'], 'heros': [{'name': '钱二', 'hight': 180, 'weght': 160}], 'hero_name_list': [['安然', '松江', '武松'], ['晁盖', '周瑜', '诸葛亮']]}
2 hero: {'name': '韩凯', 'age': 32}
3 hero_name: ['赵四', '王五', '马六']
4 heros: [{'name': '钱二', 'hight': 180, 'weght': 160}]
5 hero_name_list: [['安然', '松江', '武松'], ['晁盖', '周瑜', '诸葛亮']]

对应关系这下明白了吧?

### 如何使用Python读取YAML文件 要通过Python读取YAML文件,可以利用`PyYAML`库中的功能。以下是实现这一目标的具体方法: 首先,确保已安装`PyYAML`库。如果尚未安装,可以通过运行以下命令完成安装: ```bash pip install pyyaml ``` 接着,在代码中导入必要的模块并加载YAML文件的内容。以下是一个完整的示例代码片段[^1]: ```python import yaml import pprint # 打开并读取YAML文件 with open("test.yaml", "r") as f: # 使用safe_load函数解析YAML内容 yaml_content = yaml.safe_load(f) # 输出解析后的数据结构 pprint.pprint(yaml_content) ``` 上述代码实现了以下几个关键步骤: - **打开文件**:通过`open()`函数以只读模式(`"r"`)打开名为`test.yaml`的文件。 - **解析YAML内容**:调用`yaml.safe_load()`函数将YAML格式的数据转换为对应的Python对象(通常是字典或列表)。 - **打印结果**:借助`pprint.pprint()`函数清晰地展示解析后的内容。 此外,还可以结合其他工具进一步处理这些数据。例如,`Related`库可以帮助创建嵌套的对象模型,并将其序列化或反序列化为不同的数据格式(如JSON、YAML)。这使得复杂数据结构的操作更加便捷[^2]。 对于更复杂的项目需求,建议合理配置开发环境,比如设置预提交钩子(pre-commit hooks)来优化代码风格和一致性。具体操作可通过`.toml`文件定义规则,如下所示[^3]: ```ini [tool.black] line-length = 88 target-version = ['py37'] include = '\.pyi?$' exclude = ''' /( \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist)/ ''' ``` 最后,当涉及XML或其他特定协议时,可以选择合适的第三方库简化工作流程。例如,`ncclient`可用于处理原始XML部分,而`pyhpecw7`则提供了更高层次的抽象接口[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值