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 opencv捕获摄像头并显示内容的实现

    python opencv捕获摄像头并显示内容的实现

    这篇文章主要介绍了python opencv捕获摄像头并显示内容的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • tensorflow 实现自定义layer并添加到计算图中

    tensorflow 实现自定义layer并添加到计算图中

    今天小编就为大家分享一篇tensorflow 实现自定义layer并添加到计算图中,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python调用cmd命令时遇到的路径空格问题和中文乱码的解决

    python调用cmd命令时遇到的路径空格问题和中文乱码的解决

    这篇文章主要介绍了python调用cmd命令时遇到的路径空格问题和中文乱码的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 解决Cron定时任务中Pytest脚本无法发送邮件的问题

    解决Cron定时任务中Pytest脚本无法发送邮件的问题

    文章探讨解决在 Cron 定时任务中运行 Pytest 脚本时邮件发送失败的问题,先优化环境变量,再检查 Pytest 邮件配置,接着配置文件确保 SMTP 服务正常,包括编辑相关文件、配置认证信息等,还提及常见问题排查,如防火墙等,最终使邮件功能在定时任务中成功运行
    2025-01-01
  • 详解Python如何利用Pandas与NumPy进行数据清洗

    详解Python如何利用Pandas与NumPy进行数据清洗

    许多数据科学家认为获取和清理数据的初始步骤占工作的 80%,花费大量时间来清理数据集并将它们归结为可以使用的形式。本文将利用 Python 的 Pandas和 NumPy 库来清理数据,需要的可以参考一下
    2022-04-04
  • python两个list[]相加的实现方法

    python两个list[]相加的实现方法

    这篇文章主要介绍了python两个list[]相加的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 使用python实现哈希表、字典、集合操作

    使用python实现哈希表、字典、集合操作

    这篇文章主要介绍了使用python实现哈希表、字典、集合操作,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Django中引入bootstrap的详细图文详解

    Django中引入bootstrap的详细图文详解

    Django是基于Python的一个Web开发框架,可以实现前端和后台间的数据连接,下面这篇文章主要给大家介绍了关于Django中引入bootstrap的相关资料,需要的朋友可以参考下
    2022-10-10
  • pycharm环境下python、JS的包管理配置完整过程

    pycharm环境下python、JS的包管理配置完整过程

    PyCharm提供了多种管理项目包和环境的功能,可以帮助开发者更方便地管理项目的依赖和环境,这篇文章主要介绍了pycharm环境下python、JS包管理配置的相关资料,需要的朋友可以参考下
    2025-11-11
  • 用Python实现KNN分类算法

    用Python实现KNN分类算法

    这篇文章主要为大家详细介绍了用Python实现KNN分类算法的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12

最新评论