pythonyaml参数传递_Python YAML参数引用(从其他参数获取值)

我只需要稍微调整一下YAML解析器¹:import ruamel.yaml as yaml

from ruamel.yaml.comments import CommentedMap

yaml_str = """\

root_path: /root # use this key for expansion of values

script_path: root_path + /scripts

"""

def set_item(self, key, value):

split_val = value.split(' + ', 1)

if len(split_val) > 1:

alt_key = split_val[0].strip()

if alt_key in self.keys():

value = self.get(alt_key) + split_val[1]

self._org__setitem__(key, value)

CommentedMap._org__setitem__ = CommentedMap.__setitem__

CommentedMap.__setitem__ = set_item

data = yaml.load(yaml_str, Loader=yaml.RoundTripLoader)

print yaml.dump(data, Dumper=yaml.RoundTripDumper)

会给你:

^{pr2}$

请注意,注释和键的顺序都是用RoundTripLoader/Dumper组合保存的。data与普通Python dict一样工作。在

¹这是使用ruamel.yaml完成的,我是其中的作者。它是PyYAML的超集,主要目的是为数据往返保留注释和其他信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值