python yaml文件数据按原有的数据顺序dump问题小结

 更新时间:2023年11月01日 10:04:17   作者:pandaly  
这篇文章主要介绍了python yaml文件数据按原有的数据顺序dump,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

yml文件的更新后工具类:

import os
import yaml
class YamlUtils():
    def __init__(self,folder_name='config'):
        self.foler_name = folder_name
    def get_yaml_load(self, file_name):
        yaml_filename = self.__get_yaml_file(file_name)
        f = open(yaml_filename, encoding='utf-8')
        yaml_load = yaml.full_load(f)
        return yaml_load  def __get_yaml_file(self, file_name):
        """
        :param file_name: the filename of the configfile
        :return: the objection of the config
        """
        try:
            yaml_file = self.__get_file_path(self.foler_name, file_name)
            return yaml_file
        except Exception as e:
            print("read config file error:" + str(e))
    @staticmethod
    def __get_file_path(folder_name, file_name):
        """
        :param folder_name: the directory of the config ,the default directory is config
        :param file_name: the filename of the configfile
        :return: the objection of the config
        """
        try:
            config_path = os.path.abspath('..')
            folder_path = os.path.join(config_path, folder_name)
            file_path = os.path.join(folder_path, file_name)
            return file_path
        except Exception as e:
            print('read config file failed ' + str(e))
    def set_yaml(self, file_name,content):
        """
        调用此方法时,需新建一个YamlUtils().set_yaml(file_name,content)
        用原来的设置不会生效
        default_flow_style=False : 表示dump后的字典数据全部以yml格式显示,默认为为True
        sort_keys=False : 表示dump后的字典数据按原有的顺序示,为True时按字母的排序展示,默认为为True
        """
        yaml_filename = self.__get_yaml_file(file_name)
        f = open(yaml_filename,'w', encoding='utf-8')
        yaml_dump = yaml.dump(content,f,allow_unicode=True, default_flow_style=False,sort_keys=False)
        # print("数据更新完成")
        return yaml_dump

yml文件原有数据顺序:

更改字段值后的顺序:

出现原因是:

yaml.dump(content,f,allow_unicode=True, default_flow_style=False,sort_keys=True)
该行的代码中sort_keys的默认值为True,改为Flase后可修复代顺序变化的问题

到此这篇关于python yaml文件数据按原有的数据顺序dump的文章就介绍到这了,更多相关python yaml文件dump内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python连接SQLite数据库操作实战指南从入门到精通

    Python连接SQLite数据库操作实战指南从入门到精通

    在Python中使用SQLite进行数据库操作时,我们将深入研究SQLite数据库的创建、表格管理、数据插入、查询、更新和删除等关键主题,帮助你全面了解如何使用SQLite进行数据库操作
    2023-11-11
  • Python程序员开发中常犯的10个错误

    Python程序员开发中常犯的10个错误

    这篇文章主要介绍了Python程序员开发中常犯的10个错误,不知道你有没有中枪呢,需要的朋友可以参考下
    2014-07-07
  • 在python plt图表中文字大小调节的方法

    在python plt图表中文字大小调节的方法

    今天小编就为大家分享一篇在python plt图表中文字大小调节的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 解决pyinstaller打包exe可执行文件后运行找不到pandas或者XXX模块

    解决pyinstaller打包exe可执行文件后运行找不到pandas或者XXX模块

    这篇文章主要介绍了解决pyinstaller打包exe可执行文件后运行找不到pandas或者XXX模块问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • pandas实现处理TB级别的数据

    pandas实现处理TB级别的数据

    这篇文章主要介绍了pandas实现处理TB级别的数据,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Pyhton爬虫知识之正则表达式详解

    Pyhton爬虫知识之正则表达式详解

    正则表达式又称规则表达式,计算机科学的一个概念,正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,这篇文章主要给大家介绍了关于Pyhton爬虫知识之正则表达式的相关资料,需要的朋友可以参考下
    2022-04-04
  • YOLOv5构建安全帽检测和识别系统使用详解

    YOLOv5构建安全帽检测和识别系统使用详解

    这篇文章主要为大家介绍了YOLOv5构建安全帽检测和识别系统使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python删除列表内容

    python删除列表内容

    这里给大家通过2个例子,分析了下如何使用python删除列表内容,也给出了思路,分别通过pop和remove方法来实现,有相关需求的小伙伴可以参考下。
    2015-08-08
  • python中csv文件数据颜色设置方式

    python中csv文件数据颜色设置方式

    这篇文章主要介绍了python中csv文件数据颜色设置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python 批量添加的button 使用同一点击事件的方法

    python 批量添加的button 使用同一点击事件的方法

    今天小编就为大家分享一篇python 批量添加的button 使用同一点击事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论