java yaml dump方法_yamlyaml.load与yaml.dump方法

yaml.load与yaml.dump方法

该模块提供了一些方法,不过常用的方法只有两个yaml.load和yaml.dump ,以下是一个版本相关的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方法:# 脚本内容

[root@361way yaml]# cat load.py

import yaml

f = open('tree.yaml')

dataMap = yaml.load(f)

f.close()

print dataMap

# 执行结果如下

[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方法:

这里还承接上面的脚本,调用里面的dataMap 数据,将其保存一直新的yaml 文件,如下:# 代码如下:

f = open('newtree.yaml', "w")

yaml.dump(dataMap, f)

f.close()

#newtree.yaml 的结果如下

[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 进行查看。

​三、yaml、xml与json1、yaml 与xml

以下是同一内容,分别使用xml 语言标记与 yaml 语言标记:# xml标记两个site

sina

http://www.111cn.net 

google

http://www.91it.org

# 使用yaml标记两个site

---

site:

name: sina

url : http://www.111cn.net

---

site:

name: google

url : http://www.91it.org

# 使用yaml标记两个site

---

site: {name: sina, url: http://www.111cn.net }

---

site: {name: google, url: http://www.111cn.net}

从读取查看的角度来看,有没有发现yaml 相对xml 语言的优势。

2、yaml 与 json

准确的说json 应该算是yaml 标准下的一个字集,通过python语句可以很方面的在两者之间进行转换。

a、转换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、转换JSON到YAML# 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 语言直接解析。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值