千家信息网

Python中yaml文件的读取方法是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了Python中yaml文件的读取方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中yaml文件的读取方法是什么文章都会有所收获,下面
千家信息网最后更新 2026年11月02日Python中yaml文件的读取方法是什么

这篇文章主要介绍了Python中yaml文件的读取方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中yaml文件的读取方法是什么文章都会有所收获,下面我们一起来看看吧。

yaml 文件的应用场景与格式介绍

yaml 文件的应用场景

yaml其实也类似于 json、txt ,它们都属于一种文本格式。在我们的实际工作中, yaml 文件经常作为服务期配置文件来使用。 比如一些定义好的内容,并且不会修改的信息,我们就可以通过定义 yaml 文件,然后通过读取这样的文件,将数据导入到我们的服务中进行使用。

由于 yaml 文件一般作为配置文件使用,所以较少会修改。故而该章节,我们仅学习 yaml 文件的读取。

yaml 文件的格式

==首先大家需要知道,yaml 不是标记语言,跟 json 类似,yaml 的用途也是对数据进行序列化。(内容格式为键值对,但是与 dict 数据类型的键值对显示的样式有所区别)。内容格式人性化,较易读.==yaml 文件格式后缀为 .yaml。

注意:YAML 有一个小的怪癖。所有的 YAML 文件开始行都应该是 —。这是 YAML 格式的一部分, 表明一个文件的开始。>

YAML语法格式如下:

1、大小写敏感

2、使用缩进表示层级关系

3、缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格

4、不支持Tab键制表符缩进,只使用空格缩进

5、字符后缩进一个空格,如冒号,逗号,短横杆(-)等

6、"—"表示YAML格式,一个文件的开始,用于分隔文件间

7、"#"表示注释 (yaml文件只有行注释)

YAML 支持的数据结构有三种。

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

纯量(scalars):单个的、不可再分的值

下面对这三种数据结构做详细介绍:

yaml 中的值有以下基本类型:

  • 字符串

  • 整形

  • 浮点型

  • 布尔型

  • null

  • 时间

  • 日期

yaml 文件内容格式示例如下:

# 注释# 1-1、字典  键: 值username: xiaoming  # 冒号后面是空格password: 123456info: 配置  # 中文---不建议使用,有可能会乱码# 1-2、字典嵌套NAME_PSW:  name:xiaoming  password:123456# 2-1、列表格式-10-20-30# 2-2、列表嵌套-10-20- -100 -200# 3-1、列表中套字典-10-20- name: tom password: 123456# 4-1、字典套列表name: TOMinfo:   -10   -20   -30# 5-1、引号 如果是有英文字母或者中文的,不加引号也是字符串info: "HELLO word"  # 引号可以不加 # 5-2、什么加引号:如果有特俗字符\n 不加引号就原字符样式输出    如果显示特殊字符效果:就加双引号 info: "HELLO\nwoord"# 6-1、引用 一个数据可以使用很多地方,使用变量# & 变量名   定义变量# *变量名   引用变量name: &a tomname1: *a# 7-1、能不能多个YAML 写在一起,有字典也有列表  ,加分隔符  ----10-20-30---name: sq# 8-1、yamL文件可以有YAMLDATA: conf.yaml

第三方包 - pyyaml

pyyaml 的安装:pip install PyYAML [若安装失败,参考 - 包与模块 章节的 如何安装第三方包]

pyyaml 的导入:import pyyaml

读取 yaml 文件的方法

用法如下:

file = open(yaml_file, 'r')daya = yaml.load(file.read())file.close

返回字典类型(示例):

{    'name': '托尼·史塔克'    'age': '52'    'sex': 'man'}

yaml文件读取演示案例

创建一个 test.yaml 文件,内容如下:

name:  托尼·史塔克    # 字符串引号可以不加 【这里的缩进使用的是tab键,所以如果直接复制粘贴,在运行下方脚本时会报错,记得改成空格】invention:  - Iron Man Armor  - Arc reactor  - Ultronteammate:  - Steven Rogers  - Thor Odinson  - Natasha Romanoff  - Bruce Banner  - Clint Bartonapprentice:  彼得·帕克wife:  佩珀·波兹father:  霍华德·史塔克

创建一个 test_yaml.py 文件,读取 test.yaml 文件:

# coding:utf-8import yamldef read(path):    with open(path, 'r') as file:        data = file.read()        result = yaml.load(data)        # result = yaml.load(data, Loader=yaml.FullLoader)        return resultif __name__ == '__main__':    result = read('test.yaml')    print(result)

这里执行的时候出现了一个报错 :TypeError: load() missing 1 required positional argument: 'Loader'。 如下图:

这是因为在 YAML 5.1版本后弃用了yaml.load(file)这个用法,因为觉得很不安全,5.1版本之后就修改了需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数,该load函数也变得更加安全。所以我们需要将 result = yaml.load(data) 改为 result = yaml.load(data, Loader=yaml.FullLoader) 。

解决该 TypeError 不单单 只有 yaml.load(data, Loader=yaml.FullLoader) 这一个方法。

以下三选一即可解决该 TypeError

yaml.safe_load(file.read())yaml.load(file.read(), Loader=yaml.FullLoader)yaml.load(file.read(), Loader=yaml.CLoader)

运行结果如下:

关于"Python中yaml文件的读取方法是什么"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python中yaml文件的读取方法是什么"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

文件 格式 内容 字典 引号 方法 字符 数据 空格 变量 字符串 注释 知识 类型 塔克 配置 安全 冒号 函数 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 科技企业和互联网企业 互联网科技卖菜 金诺互联网科技 互联网与科技金融数据 智网互联网科技 深圳卡尔迅互联网科技有限公司怎么样 互联网公司会议桌创意科技软装饰 中国互联网公司排名锤子科技 佛山市翊博互联网络科技有限公司 滨湖区互联网智能科技产品有哪些 合肥互联网科技公司公章图片 南通创西澳互联网科技有限公司 伍佰万互联网科技怎么赚钱 互联网相关科技技术 神州科技互联网有限公司 国产互联网科技公司 互联网科技企业商标注意事项 银川新华互联网科技学校是国营吗 长沙易易互联网科技有限公司 有格互联网科技 广州淘业互联网络科技 善班互联网科技 宜安科技 互联网金融 远拓互联网科技 互联网高科技股票 昭通互联网科技选哪家 互联网时代的科技公司 本届互联网大会上的黑科技 兰石爱特工业互联网科技分公司
0