参数化YAML文件

时间:2016-11-01 22:54:01

标签: python parameter-passing yaml

我希望参数化一个变量的值 - 比如下面的例子中的http_proxy:

   parameters:
  - string:
      name: http_proxy
      default: 'http://myproxy.company.com'

我有两个问题:

(1)如何“参数化”默认值('http://myproxy.company.com')?我想它可以这样做:

default: %proxy_url%

(2)如果上述内容正确,我是否只是在“属性”(或等效)文件中进行设置?如果是这样,我如何配置它以从“属性”文件中的proxy_url中读取我的yaml文件?谢谢。

1 个答案:

答案 0 :(得分:1)

在简单的YAML中,可能。

您有以下选择:

  • 编辑您的YAML解析器以识别%proxy_url%并填写
  • 阅读文件,将%proxy_url%替换为您想要的网址,然后将结果提供给解析器
  • 使用YAMLs node anchors

前两个解决方案确实有效,如果你不能(或者不会)将proxy_url保存在YAML文件中,你就无法解决这些问题。

但是如果你可以将它保存在YAML文件中,请使用节点锚点 - 因为它们很棒!

我给你一个非常基本的例子:

defaults:
  proxy_url: &anchor_proxy_url http://myproxy.company.com
server:
  [... i don`t know how your file looks so just an example here]
  parameters:
   - string:
     name: http_proxy
     default: *anchor_proxy_url

旁注: 如果您想使用- string:表示以下条目属于string,我建议您使用YAML tags - 因为它们也非常棒。