1. 程式人生 > >python yaml檔案的使用注意

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+ 一下,如果每次上傳都是新加一個字典,那麼下載的時候就下不到那個最新插入的資料了,所以要保證檔案裡面只有一個字典