python yaml文件的使用注意

来源:互联网 发布:网络设备支持网管软件 编辑:程序博客网 时间:2024/05/21 15:07

yaml作为非常好用的配置文件类型深得朕心啊,

不过在用的过程中也遇到了不少坑,在这里好好总结一下

首先,下载装在python的yaml包install pyyaml:  (http://pyyaml.org/wiki/PyYAMLDocumentation) 1 wget http://pyyaml.org/download/pyyaml/PyYAML-3.01.tar.gz 2 tar zxvf PyYAML-3.01.tar.gz 3 cd PyYAML-3.01 && python setup.py install 
三部流程,出错的话自己去下好了,流程都是一样的怎么用yaml这个包呢,具体其实就两个函数一个 yaml.load()一个 yaml.dump()

第一步打开一个文件描述符

import yaml  f = open('tree.yaml')  

然后获取文件描述符内的数据,这里有几项注意,dataMap = yaml.load(f)  1.首先yaml文件里的格式必须为字典,否则会报错,2.yaml文件不能为空,否则也会报错,所以不要说为什么我用这个函数会报错,好好看看文件里的内容有什么问题3.yaml文件一次只能返回一个字典,换言之,如果你在yaml文件里插入了多个字典,load函数也只能返回第一个,所以再插入yaml的时候最好最外面只包一层字典,里面放列表就好了

再说说yaml.dump()f = open('newtree.yaml', "w")  、dataMap={“1”:[0,1,2],“2”:[3,4,5],“3“:[1,2,3]}先打开一个文件描述符

yaml.dump(dataMap, f)  把值插进去,记住一定要插字典dump有几个重要的参数要给大家看看,fn就是文件描述符yaml.dump(dataMap,default_flow_style=False,stream=f,indent=4,encoding='utf-8',allow_unicode=True)  default_flow_style=False 大概就是不要什么风格之类的给我最简单的方式显示就行了encodeing=’utf-8‘ 设置一下编码allow_unicode=True 上传时候是不是转化成unnicode形式indent=4 这个我也不知道

上传的时候要注意的是,打开文件的时候最好要w+ 一下,如果每次上传都是新加一个字典,那么下载的时候就下不到那个最新插入的数据了,所以要保证文件里面只有一个字典




0 0