python yaml文件的使用注意

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 这个我也不知道

扫描二维码关注公众号,回复: 1869726 查看本文章
 
 

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




猜你喜欢

转载自blog.csdn.net/u014368609/article/details/52712787