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

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值