python 有序读取和保存yaml格式的文件

首页 / 新闻资讯 / 正文

background-shape background-shape background-shape background-shape background-shape background-shape

data为OrderDict对象生成的字典

def save_ordered_dict_to_yaml(data, save_path, stream=None, Dumper=yaml.SafeDumper, object_pairs_hook=OrderedDict, **kwds):     class OrderedDumper(Dumper):         pass      def _dict_representer(dumper, data):         return dumper.represent_mapping(             yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,             data.items())      OrderedDumper.add_representer(object_pairs_hook, _dict_representer)     with open(save_path, 'w') as file:         file.write(yaml.dump(data, stream, OrderedDumper, allow_unicode=True, **kwds))     return yaml.dump(data, stream, OrderedDumper, **kwds)
def read_yaml_to_ordered_dict(yaml_path, Loader=yaml.Loader, object_pairs_hook=OrderedDict):     class OrderedLoader(Loader):         pass      def construct_mapping(loader, node):         loader.flatten_mapping(node)         return object_pairs_hook(loader.construct_pairs(node))      OrderedLoader.add_constructor(         yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,         construct_mapping)     with open(yaml_path) as stream:         dict_value = yaml.load(stream, OrderedLoader)         return dict_value
import yaml   def save_dict_to_yaml(dict_value: dict, save_path: str):     """dict保存为yaml"""     with open(save_path, 'w') as file:         file.write(yaml.dump(dict_value, allow_unicode=True))   def read_yaml_to_dict(yaml_path: str):     with open(yaml_path) as file:         dict_value = yaml.load(file.read(), Loader=yaml.FullLoader)         return dict_value

bg-shape bg-shape