返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么使用PyYAML库读写yaml文件
  • 703
分享到

Python怎么使用PyYAML库读写yaml文件

2023-06-29 21:06:00 703人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“python怎么使用PyYAML库读写yaml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一,YAML 简介YAML,

本篇内容介绍了“python怎么使用PyYAML库读写yaml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一,YAML 简介

YAML,Yet Another Markup Language的简写,通常用来编写项目配置,也可用于数据存储,相比conf等配置文件要更简洁。

二,YAML 语法

  • 支持的数据类型:

字典、列表、字符串、布尔值、整数、浮点数、Null、时间等

  • 基本语法规则:

大小写敏感

使用缩进表示层级关系

相同层级的元素左侧对齐

键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔

数组前加有 “-” 符号,符号与值之间需用空格分隔

None值可用null 和 ~ 表示

多组数据之间使用3横杠---分割

# 表示注释,但不能在一段代码的行末尾加 #注释,否则会报错

注意:网上查找到各种博客都提到yaml缩进时不能使用tab键,但我在PyCharm编辑器里实际使用时是可以使用tab键进行缩进的,读写时并没有报错!

三,安装第三方yaml文件处理库PyYAML

Python没有自带的处理yaml文件的库,需要下载第三方库PyYAML 或 ruamel.yaml ,这里我们安装PyYAML。

pip install pyyaml# 下载速度慢的话加上清华镜像源pip install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple

四,读取yaml文件

1,从yaml中读取字典

yaml中的字典格式如下:

# yaml文件,文件名为yamlDataos: AndroidosVersion: 10account:  username: xiaoqq  passWord: 123456deviceName: nullappPackage: ~bool1: True

读取字典代码:

# @author: 给你一页白纸import yamlwith open('./yamlData.yml', 'r', encoding='utf-8') as f:    result = yaml.load(f.read(), Loader=yaml.FullLoader)print(result, type(result))print(result['os'], type(result['os']))print(result['osVersion'], type(result['osVersion']))print(result['account'], type(result['account']))print(result['account']['username'])print(result['deviceName'])print(result['appPackage'])print(result['bool1'], type(result['bool1']))

读取结果:

{'os': 'Android', 'osVersion': 10, 'account': {'username': 'xiaoqq', 'password': 123456}, 'deviceName': None, 'appPackage': None} <class 'dict'>
Android <class 'str'>
10 <class 'int'>
{'username': 'xiaoqq', 'password': 123456} <class 'dict'>
xiaoqq
None
None
True <class 'bool'>

从读取结果可以看出:

1,读取出来的数据不会改变原数据类型,即yaml里是什么数据类型,读出来就是什么类型。

2,Loader=yaml.FullLoader参数不写的话对结果不会有影响,但运行时会出现警告信息。

3,yaml.load(f.read(), Loader=yaml.FullLoader)也可以写成yaml.load(f, Loader=yaml.FullLoader),读取出来的结果相同。

2,从yaml中读取list

yaml中list格式:数据前加'-' 并使用空格与数据间隔开,如下:

# yaml文件名yamlData- Android- 10- null- ~- True

读取list代码:

# @author: 给你一页白纸import yamlwith open('./yamlData.yml', 'r', encoding='utf-8') as f:    result = yaml.load(f.read(), Loader=yaml.FullLoader)print(result, type(result))

读取结果:

['Android', 10, None, None, True] <class 'list'>

3,从yaml中读取元组

yaml中存储元组格式:yaml中使用!!对数据类型进行转换,yaml中tuple由list转换而来。如下:

# yaml文件名yamlData!!python/tuple- Android- 10- null- ~- True

读取元组代码:

# @author: 给你一页白纸import yamlwith open('./yamlData.yml', 'r', encoding='utf-8') as f:    result = yaml.load(f.read(), Loader=yaml.FullLoader)print(result, type(result))

读取结果:

('Android', 10, None, None, True) <class 'tuple'>

在实际使用中,很多的时候往往是多种类型嵌套的数据。如下yaml数据

# yaml文件名yamlDataos: AndroidosVersion: 10account:  - username1: xiaoqq  - password1: 123456  - username2: Lilei  - password2: 888888deviceName: nullappPackage: ~bool1: True

读取结果:

{'os': 'Android', 'osVersion': 10, 'account': [{'username1': 'xiaoqq'}, {'password1': 123456}, {'username2': 'Lilei'}, {'password2': 888888}], 'deviceName': None, 'appPackage': None, 'bool1': True}

4,从yaml中读取多组数据

yaml多组数据时,每组数据之间需要用3横杠分隔'---',如下:

os: AndroidosVersion: 10account1:  username1: xiaoqq  password1: 123456---os: iOSosVersion: 12account1:  username2: Lilei  password2: 888888

从yaml中读取多组数据时需要使用yaml.load_all()方法,返回结果为一个生成器,需要使用for循环语句获取每组数据。代码如下:

# @author: 给你一页白纸import yamlwith open('./yamlData.yml', 'r', encoding='utf-8') as f:    result = yaml.load_all(f.read(), Loader=yaml.FullLoader)    print(result, type(result))    for i in result:        print(i)

读取结果:

<generator object load_all at 0x000001F78EBD5B48> <class 'generator'>
{'os': 'Android', 'osVersion': 10, 'account1': {'username1': 'xiaoqq', 'password1': 123456}}
{'os': 'ios', 'osVersion': 12, 'account1': {'username2': 'Lilei', 'password2': 888888}}

五,写入yaml文件

1,单组数据写入yaml文件

使用yaml.dump()方法,加入allow_unicode=True参数防止写入的中文乱码,如下:

# @author: 给你一页白纸import yamlapiData = {   "page": 1,   "msg": "地址",   "data": [{      "id": 1,      "name": "学校"   }, {      "id": 2,      "name": "公寓"      "id": 3,      "name": "流动人口社区"   }],}with open('./writeYamlData.yml', 'w', encoding='utf-8') as f:   yaml.dump(data=apiData, stream=f, allow_unicode=True)

写入结果:

data:
- id: 1
  name: 学校
- id: 2
  name: 公寓
- id: 3
  name: 流动人口社区
msg: 地址
page: 1

2,多组数据写入yaml文件

使用yaml.dump_all()方法,如下:

# @author: 给你一页白纸
import yaml
apiData1 = {
   "page": 1,
   "msg": "地址",
   "data": [{
      "id": 1,
      "name": "学校"
   }, {
      "id": 2,
      "name": "公寓"
      "id": 3,
      "name": "流动人口社区"
   }],
}
apiData2 = {
   "page": 2,
      "name": "酒店"
      "name": "医院"
      "name": "养老院"
with open('./writeYamlData.yml', 'w', encoding='utf-8') as f:
   yaml.dump_all(documents=[apiData1, apiData2], stream=f, allow_unicode=True)

写入结果:

data:
- id: 1
  name: 学校
- id: 2
  name: 公寓
- id: 3
  name: 流动人口社区
msg: 地址
page: 1
---
data:
- id: 1
  name: 酒店
- id: 2
  name: 医院
- id: 3
  name: 养老院
msg: 地址
page: 2

在Python中除了PyYAML库之外,还有ruamel.yaml库也可以对yaml文件进行读写操作。

“Python怎么使用PyYAML库读写yaml文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python怎么使用PyYAML库读写yaml文件

本文链接: https://lsjlt.com/news/326425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python怎么使用PyYAML库读写yaml文件
    本篇内容介绍了“Python怎么使用PyYAML库读写yaml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一,YAML 简介YAML,...
    99+
    2023-06-29
  • Python使用PyYAML库读写yaml文件的方法
    目录一,YAML 简介二,YAML 语法三,安装第三方yaml文件处理库PyYAML四,读取yaml文件1,从yaml中读取字典2,从yaml中读取list3,从yaml中读取元组4...
    99+
    2024-04-02
  • Python读写yaml文件
    目录1.关于yaml2.yaml数据结构3.yaml文件格式1.关于yaml yaml基本语法规则: 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空...
    99+
    2024-04-02
  • Python如何读写yaml文件
    这篇文章主要介绍Python如何读写yaml文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.关于yamlyaml基本语法规则:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数...
    99+
    2023-06-29
  • python怎么读取yaml文件
    在Python中,可以使用`yaml`库来读取YAML文件。首先,需要通过`pip`安装`pyyaml`库,可以使用以下命令进行安装...
    99+
    2023-09-25
    python
  • c++怎么读写yaml配置文件
    这篇文章主要介绍“c++怎么读写yaml配置文件”,在日常操作中,相信很多人在c++怎么读写yaml配置文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c++怎么读写yaml配置文件”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • Python常用配置文件ini、json、yaml读写总结
    本文参考文章,出于学习目的,写本文。 开发项目时,为了维护一些经常需要变更的数据,比如数据库的连接信息、请求的url、测试数据等,需要将这些数据写入配置文件,将数据和代码分离,只需要...
    99+
    2024-04-02
  • 怎么使用Python读写CSV文件
    这篇文章主要介绍了怎么使用Python读写CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python读写CSV文件文章都会有所收获,下面我们一起来看看吧。1. 读取CSV文件 csv.read...
    99+
    2023-07-02
  • c++开发中怎么读写yaml配置文件
    这篇文章主要讲解了“c++开发中怎么读写yaml配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++开发中怎么读写yaml配置文件”吧!c++ 开发中利用yaml-cpp读写yaml...
    99+
    2023-07-05
  • python怎么使用pyshp读写shp文件
    今天小编给大家分享一下python怎么使用pyshp读写shp文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装pip&...
    99+
    2023-07-05
  • python中yaml文件怎么用
    这篇文章主要为大家展示了“python中yaml文件怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中yaml文件怎么用”这篇文章吧。yaml简单介绍YAML是一种标记语言,它使...
    99+
    2023-06-21
  • 使用Python读写csv文件
    简介:CSV (Comma Separated Values) 格式是电子表格和数据库中最常见的输入、输出文件格式。又称逗号分隔值(Comma-Separated Values,CS...
    99+
    2024-04-02
  • 怎么使用Python读写二进制文件
    这篇文章主要介绍“怎么使用Python读写二进制文件”,在日常操作中,相信很多人在怎么使用Python读写二进制文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Python读写二进制文件”的疑惑有所...
    99+
    2023-07-06
  • C#中怎么使用NPOI库读写Excel文件
    今天小编给大家分享一下C#中怎么使用NPOI库读写Excel文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一步添加程引...
    99+
    2023-06-29
  • python使用技巧-文件读写
    前言: 在Python中,要对一个文件进行操作,只需要使用内置的open函数打开文件即可。open函数接受文件名和打开模式作为参数,返回一个文件对象。工程师通过文件对象来操作文件,完...
    99+
    2024-04-02
  • Python使用openpyxl读写excel文件
    需求:读入sample.xlsx中的信息,通过分析其中的身份证号信息,得到每个人的出生日期,性别,年龄,所在省份,星座,属相等等,将结果写入到另一个excel文件中。 首先,要使用openpyxl第三方库需要安装,安装方法如下: pip i...
    99+
    2023-09-11
    python
  • C#使用NPOI库读写Excel文件
    本文实例为大家分享了C#使用NPOI库读写Excel文件的具体代码,供大家参考,具体内容如下 第一步添加程引用: 右键项目工程 — 管理 NuGet程序包 —...
    99+
    2024-04-02
  • Python中怎么使用open函数读写文件
    本篇文章为大家展示了Python中怎么使用open函数读写文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/fin...
    99+
    2023-06-17
  • Python中怎么读写文件
    Python中怎么读写文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。从文件读取和写入文件是任何编程语言的常见需求。任何文件在读写之前都需要打开。大多数编程语...
    99+
    2023-06-15
  • Python怎么读写JSON文件
    本篇内容介绍了“Python怎么读写JSON文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JSONJSON 起源JSON 全称 Java...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作