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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ndarray的转置(numpy.transpose()与A.T命令对比分析)
这篇文章主要介绍了ndarray的转置(numpy.transpose()与A.T命令对比分析),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02详解python __init__.py 和 __all__作用
导入文件夹包的时候,会运行写在该文件夹包下的__init__.py文件,这主要是__init__.py的作用,本文结合示例代码介绍了python __init__.py 和 __all__作用,感兴趣的朋友一起看看吧2023-02-02
最新评论