python常用编辑读取yaml文件的库有yaml、pyyaml等,直接使用会因为注释内容大多为中文,编码存储实现方式原因,导致注释丢失,或中文部分变成乱码。
下面是使用ruamel.yaml实现保留手动编辑的注释和中文部分内容方法源码,很简单。
# -*- coding: utf-8 -*- # @Time : 2021/9/5 23:10 # @Author : Administrator # @File : yamltoolsplus.py # @Software : PyCharm import os from ruamel.yaml import YAML '''yaml文件的相对路径''' filename =os.path.join(os.path.dirname(__file__),'PublicConfig.yaml').replace("\\","/") co=open(filename,'r+',encoding='utf-8') yaml = YAML() yamldata = yaml.load(co) def update_yamldata(data): co = open(filename, 'r+', encoding='utf-8') yaml = YAML() yaml.dump(data, open(filename, 'w+', encoding='utf-8')) co.close() """ 使用示例 """ #引用import # from common_interface.funder.yamltools import * from faker import Faker fa_cn=Faker(locale='zh_CN') fa_en=Faker(locale='en_US') #更新前查询 print("更新前用户姓名:",yamldata['Eboss_User']['cnName']) #更新 yamldata['Eboss_User']['cnName']=fa_cn.name() update_yamldata(data=yamldata) print("更新后用户姓名:",yamldata['Eboss_User']['cnName']) #追加json内容到yaml文件中,其中['test']节点为新增节点 jsondata={'pageIndex': 1, 'pageSize': 10, 'model': {'source': '', 'sourceCode': '', 'target': '', 'receiptStockStatus': '', 'targetCode': '', 'orderNo': '', 'stockOutNo': '', 'shipmentVendor': '', 'shipmentCode': 'JDLuBan20210906144703991391', 'estimateTimeStart': '', 'estimateTimeEnd': '', 'checkoutTimeStart': '', 'checkoutTimeEnd': '', 'transportStatus': 1, 'transportFormNo': '', 'gmtCreateStart': '2021-08-07 00:00:00', 'gmtCreateEnd': '2021-09-06 23:59:59'}} yamldata['test']=jsondata update_yamldata(data=yamldata)
相关推荐
首先,我们需要安装`ruamel.yaml`库,这是Python中处理YAML文件的一个强大工具,支持保留原始格式和注释,非常适合进行修改后再写回文件的操作。通过运行`pip install ruamel.yaml`即可完成安装。 下面是一个具体的...
Python读取YAML文件是开发过程中常见的任务,特别是在配置文件管理和自动化测试领域。YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言,它的设计目标是为了让配置文件更加简洁、直观,与JSON格式...
在Python自动化测试中,经常会遇到需要处理配置文件的情况,而yaml(YAML Ain't Markup Language)作为一种简洁且强大的配置文件语言,因其易读性而受到广泛欢迎。yaml文件的格式清晰,层次分明,与JSON类似但更为...
在Python中,`yaml`模块(通常通过`PyYAML`库实现)是处理YAML文件的核心工具。YAML(YAML Ain't Markup Language)是一种轻量级的数据序列化语言,设计目标是让人类能够方便地阅读和编写,同时也能被计算机程序轻松...
使用Python的`open()`函数打开YAML文件,然后调用`yaml.load()`方法来解析文件内容。例如: ```python import yaml with open('yaml_example.yaml') as f: content = yaml.safe_load(f) ``` `yaml.safe_load...
1. **保留原始格式**:ruamel.yaml库在解析YAML文件时会尽可能地保留原始的格式和注释,这对于维护和调试配置文件非常有帮助,因为原始的空白和注释不会丢失。 2. **YAML 1.2支持**:ruamel.yaml支持YAML 1.2规范,...
1. 关键字与值:YAML文件中的数据由关键字(键)和值对组成,通常以空格或制表符进行缩进,缩进的级别表示嵌套关系。例如: ``` name: 张三 age: 30 ``` 2. 注释:以`#`开头的行被视为注释,直到行尾。 3. 字符串:...
缩进的时候使用的是空格,不是tab键(因为在写python脚本的时候可能会习惯用tab键进行缩进,这里的缩进只能使用空格。只要同层级的对齐,空一格或者空两格都是没有关系的) 4.#号表示注释 (这不就是python代码...
可以通过双引号、单引号或使用 `|` 和 `>` 来表示不同类型的文本块,分别对应保持原始换行、保留换行和合并换行。 **4.5 类型显式指示** 使用 `!` 符号进行类型指定,单个感叹号通常是自定义类型,双感叹号表示内置...
"ruamel.yaml"是Python中处理YAML的一个强大的第三方库,由Stephan Ruß开发,它不仅提供了解析和生成YAML的功能,还支持对原始YAML对象的修改,保留注释和原有格式,这在处理复杂YAML文件时非常有用。 "ruamel....
- **保留原始格式**:ruamel.yaml库在解析和读取YAML文件时,会尽可能地保留原始的缩进、空格和换行,这对于需要保持YAML文件格式不变的应用非常有用。 - **可变性**:与pyyaml不同,ruamel.yaml允许对解析后的数据...
1. **保留原始格式**:ruamel.yaml在解析和写入YAML文件时,会尽可能地保留原有的空白和注释,这对于维护和版本控制非常重要。 2. **可变性**:与PyYAML相比,ruamel.yaml的YAML对象是可变的,这意味着你可以直接...
ruamel.yaml的一个关键特性是它在读取YAML文件时保留原始格式和缩进,这意味着当你重新写入文件时,原有的空白和注释将得到保留,这对于维护具有人类可读性的配置文件非常有用。 2. **类Python的数据结构**: ...
1. **保留格式**:ruamel.yaml的一个主要特点是它能够保留原始的YAML格式,包括空白、注释和顺序。这意味着在读取和写回YAML文件时,不会丢失任何格式信息,这对于需要保持源文件整洁性的项目尤其重要。 2. **圆...
YAML 文件编写格式 YAML(YAML Ain't Markup Language)是一种人类友好的数据序列化语言,...通过了解 YAML 文件编写格式和 `yaml.load()` 方法的使用,我们可以更好地使用 YAML 语言在 Python 中实现数据交换和存储。
- **保留格式:** ruamel.yaml在读取和写入YAML文件时会尽可能地保留原始格式,包括缩进、空格、注释等,这对于维护和审查YAML配置至关重要。 - **圆括号对齐:** 库支持使用圆括号进行键值对的对齐,使得输出的...