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