zoukankan      html  css  js  c++  java
  • python读取yaml文件报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa5 in position 136: illegal multibyte sequence

    解决:

    改成用2进制读取yaml文件:

    with open(r"D:\file\yaml\data.yml",'rb') as f:

    读取代码如下:

    '''读取yaml方法'''
    import yaml
    
    
    def read_file(file_path):
        with open(file_path,'r',encoding='utf-8') as f:
            data = yaml.load(f,Loader=yaml.FullLoader)
    
            return data
    
    
    if __name__ == '__main__':
        #print(read_file('..\conf\db_conf.yml'))
        print(read_file(r'..\test_data\login\login_data.yml'))
    写入yaml文件的方法:
    '''写入yaml方法'''
    import yaml
    
    
    def main():
        data = {
            'search_data':{
                'search_tast_002':'test你',
            }
        }
    
        with open("./text.yml","w") as f:
            yaml.dump(data,f,encoding="utf-8",allow_unicode=True)   # 加后2个参数解决中文乱码
    
    
    if __name__ == '__main__':
        main()
    

      

    通用读取和写入的方法:

    import yaml
    import io
    
    
    
    class OperationYaml():
        '''操作YML文件'''
        def __init__(self):
            yaml.warnings({'YAMLLoadWarning': False})
    
        def read_yml(self, read_yml_path):
            with io.open(read_yml_path, 'r', encoding="utf-8") as rf:
                yml_data = yaml.load(rf)
                return yml_data
    
        def write_yml(self, write_yml_path, write_yml_data):
            with io.open(write_yml_path, 'w', encoding="utf-8") as wf:
                yaml.dump(write_yml_data, wf)
    
    
    if __name__ == '__main__':
        data = {'test': ['a', 'b', 'c'], 'three': 3, 'two': 2, 'one': 1}
        # OperationYaml().write_yml(r'ssa.yml',data)
        d = OperationYaml().read_yml('ss.yml')
        print(d)

  • 相关阅读:
    JS(react)里面Json、String、Map、Object之间的转换
    react里面的几个内容
    object.assign的理解
    buffers与cached的区别
    vncserver错误
    Ubuntu可视化jupyter notebook
    ubuntu可视化桌面安装问题
    素数序列的生成及其应用 Version 2.2
    demo14-修改标签里面的属性
    demo13-修改元素的内容
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/11670923.html
Copyright © 2011-2022 走看看