java yaml dump方法_yamlyaml.load与yaml.dump方法
yaml.load與yaml.dump方法
該模塊提供了一些方法,不過常用的方法只有兩個(gè)yaml.load和yaml.dump ,以下是一個(gè)版本相關(guān)的yaml 格式文件[root@361way?yaml]#?cat?tree.yaml
treeroot:
branch1:
name:?Node?1
branch1-1:
name:?Node?1-1
branch2:
name:?Node?2
branch2-1:
name:?Node?2-1
yaml.load方法:#?腳本內(nèi)容
[root@361way?yaml]#?cat?load.py
import?yaml
f?=?open('tree.yaml')
dataMap?=?yaml.load(f)
f.close()
print?dataMap
#?執(zhí)行結(jié)果如下
[root@361way?yaml]#?python?load.py
{'treeroot':?{'branch2':?{'branch2-1':?{'name':?'Node?2-1'},?'name':?'Node?2'},?'branch1':?{'branch1-1':?{'name':?'Node?1-1'},?'name':?'Node?1'}}}
yuml.dump方法:
這里還承接上面的腳本,調(diào)用里面的dataMap 數(shù)據(jù),將其保存一直新的yaml 文件,如下:#?代碼如下:
f?=?open('newtree.yaml',?"w")
yaml.dump(dataMap,?f)
f.close()
#newtree.yaml?的結(jié)果如下
[root@361way?yaml]#?cat?newtree.yaml
treeroot:
branch1:
branch1-1:?{name:?Node?1-1}
name:?Node?1
branch2:
branch2-1:?{name:?Node?2-1}
name:?Node?2
除此之外,還有safe_load、safe_dump、 load_all 等主法,具體可以通過pydoc yaml 進(jìn)行查看。
?三、yaml、xml與json1、yaml 與xml
以下是同一內(nèi)容,分別使用xml 語言標(biāo)記與 yaml 語言標(biāo)記:#?xml標(biāo)記兩個(gè)site
sina
http://www.111cn.net?
http://www.91it.org
#?使用yaml標(biāo)記兩個(gè)site
---
site:
name:?sina
url?:?http://www.111cn.net
---
site:
name:?google
url?:?http://www.91it.org
#?使用yaml標(biāo)記兩個(gè)site
---
site:?{name:?sina,?url:?http://www.111cn.net?}
---
site:?{name:?google,?url:?http://www.111cn.net}
從讀取查看的角度來看,有沒有發(fā)現(xiàn)yaml 相對(duì)xml 語言的優(yōu)勢(shì)。
2、yaml 與 json
準(zhǔn)確的說json 應(yīng)該算是yaml 標(biāo)準(zhǔn)下的一個(gè)字集,通過python語句可以很方面的在兩者之間進(jìn)行轉(zhuǎn)換。
a、轉(zhuǎn)換YAML到JSON#?python?-c?'import?sys,?yaml,?json;?json.dump(yaml.load(sys.stdin),?sys.stdout,?indent=4)'??file.json
或
#!/usr/bin/env?python
import?yaml,json
yml?=?"""
---
foo:?bar
"""
data?=?yaml.load(yml)
json?=?json.dumps(data)
print(json)
b、轉(zhuǎn)換JSON到Y(jié)AML#?python?-c?'import?sys,?yaml,?json;?yaml.dump(json.load(sys.stdin),?sys.stdout,?default_flow_style=False)'??file.yaml
或
#!/usr/bin/env?python
import?json,yaml
str?=?'{?"foo":?"bar"?}'
data?=?json.loads(str)
yml?=?yaml.safe_dump(data)
print(yml)
注:很多情況下,甚至可以直接將json后綴的文件改為yaml 后綴,使用yaml 語言直接解析。
總結(jié)
以上是生活随笔為你收集整理的java yaml dump方法_yamlyaml.load与yaml.dump方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无符号有符号乘法_【编译笔记】变量除以常
- 下一篇: sscanf取固定长度的int_ssca